import java.awt.*;
import java.awt.geom.*;
import javax.swing.*;
/**
* @version 1.32 2007-04-14
* @author Cay Horstmann
*/
public class DrawTest
{
public static void main(String[] args)
{ //事件调度线程
EventQueue.invokeLater(new Runnable()
{ @Override
public void run()
{ //创建一个窗体
DrawFrame frame = new DrawFrame();
//设置窗体默认关闭操作为退出程序
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//设置窗体为可见
frame.setVisible(true);
}
});
}
}
/**
* A frame that contains a panel with drawings
*/
class DrawFrame extends JFrame
{
public DrawFrame()
{
//设置窗体标题
setTitle("DrawTest");
//设置窗体大小
setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);
// add panel to frame
DrawComponent component = new DrawComponent();
add(component);
}
public static final int DEFAULT_WIDTH = 400;
public static final int DEFAULT_HEIGHT = 400;
}
/**
* A component that displays rectangles and ellipses.
*/
class DrawComponent extends JComponent
{
public void paintComponent(Graphics g)
{
Graphics2D g2 = (Graphics2D) g;
// draw a rectangle
double leftX = 100;
double topY = 100;
double width = 200;
double height = 150;
Rectangle2D rect = new Rectangle2D.Double(leftX, topY, width, height);
g2.draw(rect);
// draw the enclosed ellipse
Ellipse2D ellipse = new Ellipse2D.Double();
ellipse.setFrame(rect);
g2.draw(ellipse);
// draw a diagonal line
g2.draw(new Line2D.Double(leftX, topY, leftX + width, topY + height));
// draw a circle with the same center
//获得rect的中心坐标
double centerX = rect.getCenterX();
double centerY = rect.getCenterY();
double radius = 150;
Ellipse2D circle = new Ellipse2D.Double();
circle.setFrameFromCenter(centerX, centerY, centerX + radius, centerY + radius);
g2.draw(circle);
}
}
分享到:
相关推荐
这篇实验报告涉及的是Java编程中的图形用户界面(GUI)设计,特别是使用Swing库来创建一个简单的绘图程序。在Java中,Swing是用于构建桌面应用的一个组件库,提供了丰富的用户界面元素,如按钮(JButton)、菜单...
这份文档可能是Java Swing的基础教程,涵盖了JFC框架和Swing组件的基本用法,包括按钮、文本框、菜单、布局管理器等。学习者将通过此教程了解如何创建窗口、添加组件以及处理事件。 接下来,《精通Java Swing程序...
《BombMan——实时联机对战小游戏》是基于Java Swing技术开发的一款小型的多人在线对战游戏。在这款游戏中,玩家可以与朋友们实时互动,体验炸弹人风格的竞技乐趣。Swing是Java的一个图形用户界面(GUI)工具包,用于...
总的来说,Java Swing通过自定义绘图和使用Graphics2D类,结合模糊滤镜,可以实现具有现代感的毛玻璃效果。这不仅增强了用户界面的视觉吸引力,还能使用户更容易聚焦于主要的操作元素。通过不断学习和实践,你可以...
1. Java2D:这是一个强大的2D图形处理API,扩展了AWT的图形和图像处理能力,提供了精细的绘图控制,支持复杂的图形绘制、文字渲染和图像操作。 2. Accessibility API:这个API为开发无障碍软件提供了接口,使视觉...
- Java的`Graphics2D`类是用于在组件上进行2D绘图的主要接口,它可以绘制各种形状,如直线、椭圆和矩形。 - 项目中的`DrawCanvas`可能是一个自定义的`JPanel`子类,重写了`paintComponent()`方法,以在其中进行...
Swing提供了`JPanel`和`Graphics2D`类,用于在窗口上进行自定义绘图。开发者可以重写`paintComponent()`方法,在这里绘制飞机、子弹和敌机等元素。例如,使用`drawRect()`绘制飞机和敌机,`drawLine()`绘制子弹路径...
2. **自定义组件**:创建一个继承自JComponent的类,重写paintComponent方法,使用Graphics2D对象进行绘图。这包括绘制蛇的身体、食物以及其他可能的游戏元素。 3. **事件处理**:使用KeyListener或者...
开发者使用`Graphics2D`对象(`g`通常是`Graphics`的子类),调用如`drawRect()`, `drawOval()`, `fillPolygon()`等方法,结合色彩、渐变和线型等属性,来构建盾牌的基本形状——一个带有红色背景、白色星星和蓝色...
在本文中,我们将深入探讨如何使用Java Swing库来复刻经典的小游戏——坦克大战。Java Swing是Java标准版(Java SE)的一部分,提供了一套丰富的组件和工具,用于构建具有图形用户界面(GUI)的应用程序,包括游戏。...
核心的绘图类是Graphics,它是所有图形绘制的基础抽象类。Graphics对象提供了各种绘图方法,如画线、填充形状、设置颜色和字体等。由于Graphics是抽象类,通常我们不会直接实例化它,而是通过组件(如JComponent)的...
如果需要自定义组件的外观,应重写`paint()`方法,但一定要调用`super.paint(g)`以确保组件的基础绘图行为不会丢失。例如: ```java @Override public void paint(Graphics g) { super.paint(g); // 自定义的绘制...
实验十三的主题是"Java语言程序设计——绘图实践",旨在增强学生的实践能力和对Java图形API的理解。 首先,Java提供了一个强大的图形库,名为Java AWT(Abstract Window Toolkit)和Swing,它们都是Java Foundation...
在本文中,我们将深入探讨如何使用 Scala Swing 创建一个允许用户绘图的面板——"drawPanel"。这个面板为用户提供了一个交互式的界面,他们可以在这个界面上绘制各种形状,并且面板会存储并显示所有的图形对象。 ...
首先,我们来了解自定义绘图的基础——图形API(Application Programming Interface)。图形API是操作系统或库提供的接口,用于在屏幕上绘制图形。例如,Windows API中的GDI+(Graphics Device Interface Plus)和...
《推箱子游戏Swing版本——基于Java的实现详解》 推箱子游戏,作为一个经典的逻辑益智游戏,以其独特的玩法和无限的挑战性深受玩家喜爱。在这个Swing版本中,我们利用Java这一强大的编程语言,构建了一个图形用户...
在Swing组件上,我们可以通过重写`paintComponent`方法,获取Graphics2D对象,并利用其提供的各种绘图方法(如drawLine、drawRect、drawOval等)来实现画图功能。 接下来,我们需要设计交互逻辑,这包括: 1. **...
例如,在Java Swing中,可以使用`Graphics2D`对象进行绘图,包括线条绘制、填充形状、设置颜色等;在Python的Tkinter中,可能需要使用Canvas组件及其方法如`create_line()`和`create_oval()`等。 5. **状态管理**:...
Swing是建立在AWT之上的高级用户界面库,提供了更丰富的组件和更现代的外观,同时Swing也包含了自己的Graphics2D类,它是Graphics的增强版,支持更多复杂的绘图操作。 在"图形图像实验java代码"中,我们可能涉及...
在描述中提到的"方圆曲正,三原色",指的是该程序支持基本的几何形状绘制以及基础色彩的使用,如红色、蓝色和黄色——这三种颜色可以混合出其他所有颜色。 1. Java AWT和Swing库:Java AWT是Java早期的GUI组件库,...