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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

本文(画图系统实验报告.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

画图系统实验报告.docx

1、画图系统实验报告 面向对象程序设计课外实践报告项 目 名 称: 画图系统 所 在 班 级: 2012级 小 组 成 员: 任 课 教 师: 起 止 时 间: 2013/12/16-2013/12/31 项目基本信息项目名称画图系统项目简介任务要求:设计一个画图软件,能够进行随意的绘制和书写,能够绘制基本形状的图形,可设置画笔的大小和颜色以及画图区的背景颜色,具有橡皮擦功能,并且可将画好的图保存至文件,并能从文件中读取。界面要求:用户界面友好。小组成员任务分工课外实践评定成绩记录指导教师意见系统完成情况:优 良 中 差报告完成情况:优 良 中 差评定成绩团队整体成绩: 综 合 成 绩1 引 言1

2、.1 课程设计选题画图系统1.2 课程设计的目的在实践中更深的学习和理解以Java 语言为基础的面向对象程序设计语言,掌握以Java为核心的应用软件开发方案,达到能独立阅读、编制和调试一定规模的Java程序的水平,与此同时提高我们实际动手编程的能力、解决问题的能力。程序通过调用JAVA提供的基本类进行了简单的界面设计,运用了JAVA中类的继承特性实现了对父类方法的调用,运用了适配器类简化了监听器类的重写工作。1.3 课程设计的背景在日常生活和学习中,我们经常需要画图,简单的画图我们可以手工完成,但往往还是不能满足需求。因此,借助计算机准确而快速的画图就显得十分有必要了。好的画图工具能够很好的完

3、成日常生活中的各种画图工作。2 需求分析2.1功能需求设计一个画图系统,能够实现在屏幕上任意绘画、书写的功能;能实现画直线、画椭圆、画圆、画矩形、画空心图形,画实心图形、画3D矩形,画3D立方体等功能;在绘图的过程中能够修改该画笔的大小以及颜色;能够改变背景颜色;该画图程序还需具有橡皮擦功能。2.2系统的开发运行环境 本系统开发环境:MyEclipse本系统运行环境: windows xp 或以上版本3总体设计3.1系统结构设计画图系统设计的画图板主要包括菜单栏,工具栏,画图区和菜单栏四个部分。菜单栏主要包括文件、编辑、设置、帮助等常见菜单,可完成一些基本操作;工具栏可根实际需要选择不同的工具

4、完成画图操作;画图区能够对图片及文字进行编辑处理;菜单栏用来显示鼠标当前的状态。3.2软件功能模块及主要类设计3.2.1功能描述本软件可以绘制日常生活和学习中用到的基本图形及进行文本输入。软件主要有菜单栏、工具栏、画图区、状态栏组成,菜单栏主要包括文件、编辑、设置、帮助等常见菜单。其中文件菜单有新建、打开、保存、另存为、退出功能;编辑菜单有撤销、恢复功能;设置菜单含有对画笔颜色、画笔大小等的设置功能;帮助菜单提供画图板的帮助信息及作者信息。工具栏可以选择用户需要的图形样式、设置参数、插入文本等操作。画图区就是简单绘图区域,用户在画图区可自由绘制图形。状态栏可以显示鼠标的动态(画图、点击、松开、

5、移出)和位置。右击工具栏可设置工具是否可拖动。此外,还可以根据不同的需要设置背景色,画笔大小、画笔颜色。能够在任意点添加文字并设置文字样式和字体颜色。3.2.2 功能结构图 3.2.3主要类设计Paint类 Paint类为主类,定义main方法;MyPaint类 MyPaint类继承JFrame类,用于实现画图板的总体构架。包括菜单栏设计、工具栏设计、画图区创建、鼠标事件等。画图板的一些基本功能都靠MyPaint类来实现。DrawPanel类DrawPanel来是MyPaint类的内部类,是用来画图的。drawings类drawings类是画图类,是基本图形的单元。其各个子类用以实现画各种图形

6、,其包括以下几个子类:Line类绘制直线; Circle类绘制圆;fillCircle类绘制实心圆;Rect类绘制矩形; fillRect绘制实心矩形;RoundRect绘制圆角矩形;Oval类绘制椭圆;Rect3D 类绘制3D矩形;Cube类绘制立方体;Pencil类自由笔;Rubber类橡皮类;Word类文本类等。4 系统详细设计与实现4.1主界面4.1.1主界面功能设计画图板的主界面分为菜单栏、工具栏、画图区、状态栏四部分。4.1.2主界面设计画图板的主界面如下图所示,在主类中加载了系统风格,使其界面更为美观;为工具栏和工具栏按钮添加了颜色,使画图板颜色不单调;为画图板的工具栏设置各种图

7、标,使画图板更有个性。在实现画图功能的基础上使其外观更为美观。4.1.3主界面主要代码1.加载系统风格:try UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName(); /加载系统界面风格 catch (Exception e) 2.设置窗体图标:Toolkit kit=Toolkit.getDefaultToolkit(); /获取Toolkit实例Image image=kit.getImage(Icons/Title.jpg); /获取图片setIconImage(image); /设置窗体图标4.2菜单栏4.

8、2.1菜单栏功能设计菜单栏包括文件、编辑、设置、帮助四部分。其中,文件菜单实现了新建、打开、保存、另存为、退出功能;编辑菜单实现了撤销和恢复功能;设置菜单实现了画笔颜色、画笔大小和立方体宽度的设置;帮助菜单实现了关于画图板的帮助信息及作者的信息。4.2.2菜单栏界面设计1.文件菜单:2.编辑菜单: 3.设置菜单4.帮助菜单5.画笔大小6.画笔颜色4.2.3菜单栏主要代码菜单栏代码较多,详细代码见附录。4.3工具栏4.3.1工具栏功能设计工具栏是一系列快捷操作的按钮,分别是:新建、打开、保存、自由画笔、直线、空心矩形、实心矩形、空心椭圆、实心椭圆、圆、实心圆、空心圆角矩形、实心圆角矩形、空心3D

9、矩形、实心3D矩形、3D长方体、橡皮、设置背景色、画笔颜色、画笔粗细、添加文字,用来实现相应的功能。另外还为工具栏设置了按钮图片和鼠标右击事件,右击鼠标可以设置工具栏是否可拖动。4.3.2工具栏界面设计4.3.3工具栏主要代码1.工具栏按钮图标items=new ImageIconnames.length; /创建各种基本图形的按钮 choices=new JButtonnames.length; buttonPanel = new JToolBar( JToolBar.VERTICAL); buttonPanel = new JToolBar( JToolBar.HORIZONTAL); B

10、uttonHandler handler=new ButtonHandler(); ButtonHandler1 handler1=new ButtonHandler1(); buttonPanel.setBackground(new Color(0,260,280); /工具栏背景色设置 /导入图形图标,图标存放在项目文件夹下的Icons目录内 for(int i=0;ichoices.length;i+) itemsi=new ImageIcon(Icons/+namesi+.jpg); choicesi=new JButton(itemsi); choicesi.setToolTipTe

11、xt(tipTexti); choicesi.setBackground(new Color(204,204,204); /按钮背景色设置 buttonPanel.add(choicesi); 2.鼠标右击事件:/ 工具栏右击菜单,设置工具栏是否可拖动void ToolMenu() final JPopupMenu ToolMenu; ToolMenu = new JPopupMenu(); final JCheckBox move = new JCheckBox(工具栏是否可拖动); move.setBackground(new Color(0, 255, 0); ToolMenu.add(

12、move); buttonPanel.addMouseListener(new MouseAdapter() public void mousePressed(MouseEvent e) if (e.getModifiers() = InputEvent.BUTTON3_MASK) ToolMenu.show(buttonPanel, e.getX(), e.getY(); );move.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) if (move.isSelected()

13、buttonPanel.setFloatable(true); else buttonPanel.setFloatable(false); );4.4画图区4.4.1画图区功能设计画图区可以绘制各种图形,可以进行擦除操作,还可以根据实际需要添加文本。4.4.2画图区界面设计4.4.3画图区主要代码 详细代码见附录。4.5状态栏4.5.1状态栏功能设计状态栏是显示鼠标的状态的信息栏,随时反馈鼠标信息。4.5.2状态栏设计 4.5.3状态栏主要代码部分代码如下,详细代码见附录:public void mousePressed(MouseEvent e) statusBar.setText(鼠标点击

14、:+e.getX()+,+e.getY()+); /设置状态提示 itemListindex.x1=itemListindex.x2=e.getX(); itemListindex.y1=itemListindex.y2=e.getY(); /如果当前选择的图形是随笔画或者橡皮擦,则进行下面的操作 if(currentChoice=3|currentChoice=16) itemListindex.x1=itemListindex.x2=e.getX(); itemListindex.y1=itemListindex.y2=e.getY(); index+; createNewItem();

15、5 设计小结 在本次的课程设计中,应用了java中开发图形应用程序的常用控件、事件处理机制、常用功能实现等。设计的此软件基本达到理想的效果,在在编写这一软件的过程中我学到了很多java编程知识,并学会了如何快速的改正程序中的错误。从编写记事本到画图系统的设计,有很多相同的地方,但不同的地方更多。在编写菜单栏时可以借鉴记事本中的编程思想。但是画图系统增添了一行工具栏,实现了更多的功能,还用到了文件的输入输出流等。本次设计我对面向对象的程序设计有了一个总体的把握,从软件工程的角度看,有了一个完整的脉络,如需求、设计 实现、测试。编程中遇到了很多问题,通过查阅书籍、上网搜资料以及同学之间的交流讨论,

16、最终完成了画图软件的设计。经过这两周的课程设计,使我收获了很多java编程方面的知识,而这些知识是实践中才能学得到的。这让我想起一句话:纸上得来终觉浅,绝知此事要躬行。没错,学习不仅仅是大脑的思考,更要有实践的配合。现在觉得自己掌握的Java知识比课堂上学到的多很多,同时对其他编程语言的学习也有了一定的帮助。其实,这只是java编程知识的冰山一角,我还有很多东西没有学到,仍需继续努力。但是由于所学知识有限,能力水平有限,难免有些功能还不能很好的实现,还望老师批评指正。在今后的学习中,我还会将更多的时间与精力投入到Java的学习中,不断为自己所学的知识补充新鲜血液。参考文献(1) 耿祥义, 张跃

17、平. Java实用教程(第3版) 北京:电子工业出版社, 2012.1(2) 陈明. Java语言程序设计课程实践, 北京: 清华大学出版社, 2009.1(3) 陈嵩 等. 新手学Java M. 北京:北京希望电子出版社, 20106 附 录源程序清单Paint.java: import java.awt.*; import java.awt.event.*; import java.io.*; import javax.swing.*; import javax.swing.event.UndoableEditEvent;import javax.swing.undo.*;public c

18、lass Paint public static void main(String args) try UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName(); /加载系统界面风格 catch (Exception e) new MyPaint(); class MyPaint extends JFrame JMenuBar jmenuBar; private ObjectInputStream input; private ObjectOutputStream output; /定义输入输出流,用来调用和保存图像文

19、件 private JButton choices; /按钮数组 private String names= New, /新建 Open, /打开 Save, /保存 Pencil, /自由画笔 Line, /直线 Rect, /空心矩形 fRect, /实心矩形 Oval, /空心椭圆 fOval, /实心椭圆 Circle, /圆形 fCircle, /实心圆形 RoundRect, /圆角矩形 frRect, /实心圆角矩形 3DRect, /3D矩形 f3DRect, /实心3D矩形 Cube, /立方体 Rubber, /橡皮擦 bgColor, /背景色 Color, /画笔颜色

20、Stroke, /画笔大小 Word /文本输入 ; GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment(); String styleNames = ge.getAvailableFontFamilyNames(); /加载系统字体 private Icon items; private String tipText=新建,打开,保存,自由画笔,直线,空心矩形, 实心矩形,空心椭圆,实心椭圆,圆,实心圆,空心圆角矩形, 实心圆角矩形,3D矩形,3D矩形,3D长方体,橡皮,设置背景色,画笔颜色, 画笔

21、粗细,添加文字; /按钮提示说明 JToolBar buttonPanel ; /定义按钮面板 private JLabel statusBar; /显示鼠标状态的提示条 private DrawPanel drawingArea;/定义画图区域 private int width=850,height=550; /画图区域初始大小 drawings itemList=new drawings5000; /用来存放基本图形的数组 private int currentChoice=3; /设置初始画笔为自由笔画 int index=0; /已绘制图形数目 private Color color

22、=Color.black; /画笔颜色 int R,G,B; /颜色值 int f1,f2; /存放当前字体风格 String style1; /存放当前字体 private float stroke=1.0f; /设置画笔粗细 static int thickness=10; /立方体宽度 JCheckBox bold,italic; /定义字体风格选择框 MyUndoManager myUndo; JComboBox styles; /字体选择框 Toolkit kit=Toolkit.getDefaultToolkit(); /获取Toolkit实例 Image image=kit.ge

23、tImage(Icons/Title.jpg); /获取图片 public MyPaint() setTitle(绘图系统第十组版); setLocation(300,100); /画图板窗口起始位置 setSize(750,550); /setBounds(200,100,850,750);/画图板大小 setVisible(true); setIconImage(image); /设置窗体图标 setCursor(new Cursor(Cursor.HAND_CURSOR); /设置画图板鼠标样式 drawingArea=new DrawPanel(); setDefaultCloseOp

24、eration(JFrame.DO_NOTHING_ON_CLOSE); addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) if (JOptionPane.showConfirmDialog(new Frame(),你确定退出吗?,退出提示, JOptionPane.WARNING_MESSAGE) = JOptionPane.OK_OPTION) System.exit(0); ); /关闭确认提示 getJMenuBar(); /获取菜单栏 myUndo = new MyUndoMa

25、nager(); items=new ImageIconnames.length; /创建各种基本图形的按钮 choices=new JButtonnames.length; buttonPanel = new JToolBar( JToolBar.VERTICAL); buttonPanel = new JToolBar( JToolBar.HORIZONTAL); ButtonHandler handler=new ButtonHandler(); ButtonHandler1 handler1=new ButtonHandler1(); buttonPanel.setBackground

26、(new Color(0,260,280); /工具栏背景色设置 /导入图形图标,图标存放在项目文件夹下的Icons目录内 for(int i=0;ichoices.length;i+) itemsi=new ImageIcon(Icons/+namesi+.jpg); choicesi=new JButton(itemsi); choicesi.setToolTipText(tipTexti); choicesi.setBackground(new Color(204,204,204); /按钮背景色设置 buttonPanel.add(choicesi); ToolMenu(); /工具栏

27、右击事件调用 /将动作侦听器加入按钮里面 for(int i=3;ichoices.length-4;i+) choicesi.addActionListener(handler); choices0.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) newFile(); ); choices1.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) loadFile();

28、); choices2.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) saveFile(); ); choiceschoices.length-4.addActionListener(handler1); choiceschoices.length-3.addActionListener(handler1); choiceschoices.length-2.addActionListener(handler1); choiceschoices.length-1.addActionListener(handler1); /字体风格选择 styles=new JComboBox(styleNames); styles.setMaximumRowCount(10); styles.a

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1