Java程序设计绘图软件的开发.pptVIP

  • 42
  • 0
  • 约1.15万字
  • 约 26页
  • 2018-10-16 发布于天津
  • 举报
Java程序设计绘图软件的开发.ppt

Java程序设计 绘图软件的开发 一、设计简介: 绘图软件的开发,顾名思义,就是要开发一个能进行绘图的程序,为了能获取鼠标单击点的位置信息,需要用鼠标事件监听程序MouseListener和MouseMotionListener来获取鼠标事件,为此说明一个类来说明和实现这两个接口。还要调用调色板。 二、设计目的: 整个程序完成后,能实现简单的绘图功能。能用鼠标拖动画出椭圆,正圆,直线,正方形,长方形,弧线,还能设置颜色,具有擦出、清除、保存等功能。 三、技术要点: CVS已继承于Component,因为java中没有多重继承机制,所以它不能再继承MouseAdapter类,而只能实现监听程序接口,所以程序中需要有实现这两个接口的全部方法,包括:mouseClicked()、mouseEntered()、mouseExited()、mousePressed()、mouseReleased()、mouseMoved()、mouseDragged(),对于用不到的方法,可以令方法为空。 对于Component,需使用addMouseListener(this)和addMouseMotionListerner(this)来添加事件监听程序,并在类中实现鼠标按下(mousepressed)和拖拉(mouseDragged)方法。鼠标按下时得到画图区域的左上角位置,拖拉过程中得到画图区域的右下角位置。因为是在鼠标拖拉过程中得到右下角坐标,所以要重新实现public void mouseDragged()方法。 四、源代码分析: import java.awt.*; //包含用于创建用户界面和绘制图形图像的所有类 import java.awt.event.*; import java.awt.geom.*;//提供用于在与二维几何形状相关的对象上定义和执行操作的 Java 2D 类 import java.awt.image.BufferedImage;//抽象类 Image 是表示图形图像的所有类的超类 import java.io.*;//文件输入输出流 import java.util.ArrayList; import javax.swing.*; import javax.swing.filechooser.FileNameExtensionFilter; public class JDraw { public static void main(String[] args) { JFrame f=new JFrame(); //实例化一个窗体 f.setDefaultCloseOperation(3);//添加关闭按钮 f.setSize(880,600); f.setLocationRelativeTo(null);//此窗口位于屏幕的中央 f.getContentPane().add(M.c);//初始化一个容器 f.getContentPane().add(M.m,South); f.setVisible(true);//使可视化窗口组件显示 } } class CVS extends Component implements ComponentListener,MouseListener,MouseMotionListener/*用于接收组件上的鼠标移动事件的侦听器接口*/ { public void componentHidden(ComponentEvent e) {}//组件变得不可见时调用 public void componentMoved(ComponentEvent e) {}//组件位置更改时调用 public void componentResized(ComponentEvent e) {resized();}//组件大小更改时调用 public void componentShown(ComponentEvent e) {}//组件变得可见时调用 private void resized() { int w=this.getWidth(); int h=this.getHeight(); tbuff=new BufferedImage(w,h,3);//描述具有可访问图像数据缓冲区的 Image makeBuff(w,h); } private void makeBuff(int w,int h) { Graphics g = tbuff.getGraphics(); g.drawImage(buff,0,0,null);//绘制指定图像中当前可用的图像 g.dispose(); buff=new Buffere

文档评论(0)

1亿VIP精品文档

相关文档