`
zhuobinzhou
  • 浏览: 136633 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类

Swing基础(三)——2D绘图

阅读更多
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实验报告——简单绘图程序文件.doc

    这篇实验报告涉及的是Java编程中的图形用户界面(GUI)设计,特别是使用Swing库来创建一个简单的绘图程序。在Java中,Swing是用于构建桌面应用的一个组件库,提供了丰富的用户界面元素,如按钮(JButton)、菜单...

    java swing资料大全

    这份文档可能是Java Swing的基础教程,涵盖了JFC框架和Swing组件的基本用法,包括按钮、文本框、菜单、布局管理器等。学习者将通过此教程了解如何创建窗口、添加组件以及处理事件。 接下来,《精通Java Swing程序...

    BombMan——实时联机对战小游戏 一个用java swing写的实时联机对战小游戏.zip

    《BombMan——实时联机对战小游戏》是基于Java Swing技术开发的一款小型的多人在线对战游戏。在这款游戏中,玩家可以与朋友们实时互动,体验炸弹人风格的竞技乐趣。Swing是Java的一个图形用户界面(GUI)工具包,用于...

    java swing 毛玻璃实现

    总的来说,Java Swing通过自定义绘图和使用Graphics2D类,结合模糊滤镜,可以实现具有现代感的毛玻璃效果。这不仅增强了用户界面的视觉吸引力,还能使用户更容易聚焦于主要的操作元素。通过不断学习和实践,你可以...

    语言程序设计资料:Java基础类-Swing.doc

    1. Java2D:这是一个强大的2D图形处理API,扩展了AWT的图形和图像处理能力,提供了精细的绘图控制,支持复杂的图形绘制、文字渲染和图像操作。 2. Accessibility API:这个API为开发无障碍软件提供了接口,使视觉...

    java课设——用菜单按钮控制系统绘图.doc

    - Java的`Graphics2D`类是用于在组件上进行2D绘图的主要接口,它可以绘制各种形状,如直线、椭圆和矩形。 - 项目中的`DrawCanvas`可能是一个自定义的`JPanel`子类,重写了`paintComponent()`方法,以在其中进行...

    swing版本山寨微信打飞机

    Swing提供了`JPanel`和`Graphics2D`类,用于在窗口上进行自定义绘图。开发者可以重写`paintComponent()`方法,在这里绘制飞机、子弹和敌机等元素。例如,使用`drawRect()`绘制飞机和敌机,`drawLine()`绘制子弹路径...

    儿时回忆,贪吃蛇,Java swing编写,完美运行。myeclipes导入即可

    2. **自定义组件**:创建一个继承自JComponent的类,重写paintComponent方法,使用Graphics2D对象进行绘图。这包括绘制蛇的身体、食物以及其他可能的游戏元素。 3. **事件处理**:使用KeyListener或者...

    Swing美国队长盾牌

    开发者使用`Graphics2D`对象(`g`通常是`Graphics`的子类),调用如`drawRect()`, `drawOval()`, `fillPolygon()`等方法,结合色彩、渐变和线型等属性,来构建盾牌的基本形状——一个带有红色背景、白色星星和蓝色...

    坦克大战JavaSwing 实现_java

    在本文中,我们将深入探讨如何使用Java Swing库来复刻经典的小游戏——坦克大战。Java Swing是Java标准版(Java SE)的一部分,提供了一套丰富的组件和工具,用于构建具有图形用户界面(GUI)的应用程序,包括游戏。...

    Java绘图.ppt

    核心的绘图类是Graphics,它是所有图形绘制的基础抽象类。Graphics对象提供了各种绘图方法,如画线、填充形状、设置颜色和字体等。由于Graphics是抽象类,通常我们不会直接实例化它,而是通过组件(如JComponent)的...

    java——Graphics.pdf

    如果需要自定义组件的外观,应重写`paint()`方法,但一定要调用`super.paint(g)`以确保组件的基础绘图行为不会丢失。例如: ```java @Override public void paint(Graphics g) { super.paint(g); // 自定义的绘制...

    java简易绘图程序

    实验十三的主题是"Java语言程序设计——绘图实践",旨在增强学生的实践能力和对Java图形API的理解。 首先,Java提供了一个强大的图形库,名为Java AWT(Abstract Window Toolkit)和Swing,它们都是Java Foundation...

    drawPanel:允许绘图的 Scala Swing 面板

    在本文中,我们将深入探讨如何使用 Scala Swing 创建一个允许用户绘图的面板——"drawPanel"。这个面板为用户提供了一个交互式的界面,他们可以在这个界面上绘制各种形状,并且面板会存储并显示所有的图形对象。 ...

    自定义绘图

    首先,我们来了解自定义绘图的基础——图形API(Application Programming Interface)。图形API是操作系统或库提供的接口,用于在屏幕上绘制图形。例如,Windows API中的GDI+(Graphics Device Interface Plus)和...

    game-sokoban-swing:推箱子swing版本

    《推箱子游戏Swing版本——基于Java的实现详解》 推箱子游戏,作为一个经典的逻辑益智游戏,以其独特的玩法和无限的挑战性深受玩家喜爱。在这个Swing版本中,我们利用Java这一强大的编程语言,构建了一个图形用户...

    java实现的一个小小画图板的开发

    在Swing组件上,我们可以通过重写`paintComponent`方法,获取Graphics2D对象,并利用其提供的各种绘图方法(如drawLine、drawRect、drawOval等)来实现画图功能。 接下来,我们需要设计交互逻辑,这包括: 1. **...

    在视图中使用鼠标进行绘图操作(涂鸦)

    例如,在Java Swing中,可以使用`Graphics2D`对象进行绘图,包括线条绘制、填充形状、设置颜色等;在Python的Tkinter中,可能需要使用Canvas组件及其方法如`create_line()`和`create_oval()`等。 5. **状态管理**:...

    图形图像实验java代码

    Swing是建立在AWT之上的高级用户界面库,提供了更丰富的组件和更现代的外观,同时Swing也包含了自己的Graphics2D类,它是Graphics的增强版,支持更多复杂的绘图操作。 在"图形图像实验java代码"中,我们可能涉及...

    java画图软件

    在描述中提到的"方圆曲正,三原色",指的是该程序支持基本的几何形状绘制以及基础色彩的使用,如红色、蓝色和黄色——这三种颜色可以混合出其他所有颜色。 1. Java AWT和Swing库:Java AWT是Java早期的GUI组件库,...

Global site tag (gtag.js) - Google Analytics