ImageVerifierCode 换一换
格式:PPT , 页数:26 ,大小:237.50KB ,
资源ID:769276      下载积分:10 文钱
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,省得不是一点点
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenke99.com/d-769276.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Java程序设计绘图软件的开发.PPT)为本站会员(国***)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

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

1、Java程序设计绘图软件的开发一、设计简介: 绘图软件的开发,顾名思义,就是要开发一个能进行绘图的程序,为了能获取鼠标单击点的位置信息,需要用鼠标事件监听程序MouseListener和 MouseMotionListener来获取鼠标事件,为此说明一个类来说明和实现这两个接口。还要调用调色板。 二、设计目的: 整个程序完成后,能实现简单的绘图功能。能用鼠标拖动画出椭圆,正圆,直线,正方形,长方形,弧线,还能设置颜色,具有擦出、清除、保存等功能。 三、技术要点: CVS已继承于 Component,因为 java中没有多重继承机制,所以它不能再继承 MouseAdapter类,而只能实现监听程

2、序接口,所以程序中需要有实现这两个接口的全部方法,包括: mouseClicked()、 mouseEntered()、 mouseExited()、 mousePressed()、 mouseReleased()、 mouseMoved()、 mouseDragged(),对于用不到的方法,可以令方法为空。 对于 Component,需使用 addMouseListener( this)和addMouseMotionListerner( this)来添加事件监听程序,并在类中实现鼠标按下( mousepressed)和拖拉(mouseDragged)方法。鼠标按下时得到画图区域的左上角位置,

3、拖拉过程中得到画图区域的右下角位置。因为是在鼠标拖拉过程中得到右下角坐标,所以要重新实现 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.*;/文件输入输出流 i

4、mport 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.getCo

5、ntentPane().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(C

6、omponentEvent 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 v

7、oid makeBuff(int w,int h) Graphics g = tbuff.getGraphics(); g.drawImage(buff,0,0,null);/绘制指定图像中当前可用的图像 g.dispose(); buff=new BufferedImage(w,h,3); g=buff.getGraphics(); g.drawImage(tbuff,0,0,null); g.dispose(); BufferedImage buff,tbuff; CVS() this.addComponentListener(this); this.addMouseListener(th

8、is); this.addMouseMotionListener(this); buff=new BufferedImage(1,1,3); public void paint(Graphics gr) Graphics2D g = buff.createGraphics(); g.setBackground(new Color(0xffffffff,true); g.clearRect(0,0,getWidth(),getHeight(); g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, /类 java.awt.RenderingHin

9、ts 中的静态变量 抗锯齿提示键。 RenderingHints.VALUE_ANTIALIAS_ON);/类 java.awt.RenderingHints 中的静态变量 抗锯齿提示值 在不使用抗锯齿模式的情况下完成呈现 M.sa.drawAll(g); if(M.ts!=null) M.ts.draw(g); g.dispose(); gr.drawImage(buff,0,0,this); gr.dispose(); public void mouseClicked(MouseEvent e) public void mouseEntered(MouseEvent e) public v

10、oid mouseExited(MouseEvent e) public void mousePressed(MouseEvent e) M.mp(e.getPoint(); public void mouseReleased(MouseEvent e) M.mr(e.getPoint(); public void mouseDragged(MouseEvent e) M.md(e.getPoint(); public void mouseMoved(MouseEvent e) class Menu extends JComponent implements MouseListener,Act

11、ionListener JComboBox sbox,method; CLabel cl;/定义颜色选框 JCheckBox fillC,drawB; JRadioButton fc,bc;/定义两个多选框 ButtonGroup bg;/按钮组 JButton clear,save,load;/三个按钮 Menu() this.setLayout(new FlowLayout(); method=new JComboBox(new Object“绘图 “,“移动 “,“擦除 “,); add(method); sbox=new JComboBox(new Object“椭圆 “,“直线 “,

12、“长方形 “,“正圆 “,“弧线 “,);/两个下拉菜单 add(sbox); cl=new CLabel13;/出现了 13个颜色选框 for(int i=0; icl.length; i+) cli=new CLabel(); cli.addMouseListener(this);/鼠标监听事件 add(cli); fc=new JRadioButton(“填充颜色 “,true); bc=new JRadioButton(“边框颜色 “);/两个多选按钮 bg=new ButtonGroup(); bg.add(fc);bg.add(bc);/在按钮组中添加两个按钮 add(fc);ad

13、d(bc); fc.setOpaque(true);/默认为勾选 bc.setOpaque(true); fc.setBackground(Color.white);/将填充颜色初始化为白色 bc.setBackground(Color.blue);/将边框颜色初始化为蓝色 fillC=new JCheckBox(“填充 “,true);/默认为选中 drawB=new JCheckBox(“边框 “,true); fillC.addActionListener(this); drawB.addActionListener(this); add(fillC);add(drawB); clear

14、=new JButton(“清除 “);/清除按钮 clear.addActionListener(this); add(clear); save=new JButton(“保存 “);/ 保存按钮 save.addActionListener(this); add(save); load=new JButton(“打开 “);/打开按钮 load.addActionListener(this); add(load); public void mouseClicked(MouseEvent e) /定义一个鼠标点击事件 JLabel l=(JLabel)e.getSource(); if(e.

15、getClickCount()=2)/ 鼠标双击 Color sc=JColorChooser.showDialog(null, “Color chooser“, l.getBackground();/调用颜色选框 l.setBackground(sc); mousePressed(e); public void mouseEntered(MouseEvent e) public void mouseExited(MouseEvent e) public void mousePressed(MouseEvent e) Color c=(JLabel)e.getSource().getBackground(); if(fc.isSelected() fc.setBackground(c); else if(bc.isSelected()

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。