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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

Java画图板程序设计报告.docx

1、Java画图板程序设计报告西安科技大学Java语言课程设计报告题目: 画图板应用程序开发 班级: 学号: 姓名: 2010年 12 月1 设计题目及具体要求32 总体设计63 详细设计与实现44 系统测试115 设计小结31参考文献1、设计题目及具体要求 1.1 题目需求 1. 设计题目:小画图板的开发。 2. 重点分析 本软件的重难点为主窗体的设计、菜单栏和工具栏的设计、事件响应的处理、画图的基本功能的实现。 3. 实现功能1 新建一个空白图形文件:用于绘制新的图形。2 打开或保存一个图形文件,便于对图形文件的管理。3 绘制一些基本的图形组件:直线,矩形,实心矩形,椭圆,实心椭圆,圆,实心圆

2、,圆角矩形,实心圆角矩形等。4 用鼠标在绘图板上单击拖动进行随笔花。5 橡皮擦:可以将已绘制的图形擦掉。6 添加文字:可以在绘图区域内添加文字。7 选择文字的字体:通过一个下拉式的选择条,可以选中所需要的字体。本程序中包括:宋体,隶书,华文彩云,仿宋-GB2312,华文行楷,Times New Roman,Serif,Monospaced,SonsSerif,Garamond。当然,在下面的程序分析中可以看到,由于设置了字体选择数组,使得可以随意添加系统支持的任何字体。大大方便和简化了程序设计。8 选择文字的字体风格:通过两个复选框按钮,可以选择需要的字体风格,包括:粗体,斜体,用同时选中两者

3、,只选择其中一种或两者都不选中3种选择方式。9 设置画笔的颜色:可以选择当前绘制图形的画笔颜色,让图形更加丰富多彩,生动活泼。10. 设置画笔的粗细:该选项在作用于基本图形组件和文字时,它的效果是不同的。当作用于绘制图形组建时,它的作用是改变画笔绘制线条的粗细;当作用于文字时,它的作用是改变文字的大小。4. 功能图图1-1 画图板应用程序功能结构图1.2 实现环境及工具简介CPU:Intel Core(TM)2 E5300 内存:2G运行平台:Windows XP 主频:2.60GHz 开发平台:Eclipse 主板:ASUSTeK Computer INC. P5QL-ASUS-SE Ecl

4、ipse简介: EclipseIBM的Java IDE开发环境IBM-Eclipse简介:Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括 Java 开发工具(Java Development Tools,JDT)。IBM-Eclipse版本历史:Eclipse最初是由IBM公司开发的替代商业软件Visual Age for Java的下一代IDE开发环境,2001年11月贡献给开源社区,现在它由非营利软件供应商联盟Eclipse基金会(Eclips

5、e Foundation)管理。 2003年,Eclipse 3.0选择OSGi服务平台规范为运行时架构。 2007年6月,稳定版3.3发布。2008年6月发布代号为Ganymede的3.4版。2009年7月发布代号为GALILEO的3.5版。2010年6月发布代号为Helios的3.6版。IBM-Eclips语言拓展:Eclipse是著名的跨平台的自由集成开发环境(IDE)。最初主要用来Java语言开发,但是目前亦有人通过插件使其作为其他计算机语言比如C+和Python的开发工具。Eclipse的本身只是一个框架平台,但是众多插件的支持使得Eclipse拥有其他功能相对固定的IDE软件很难具

6、有的灵活性。许多软件开发商以Eclipse为框架开发自己的IDE。Eclipse 最初由OTI和IBM两家公司的IDE产品开发组创建,起始于1999年4月。IBM提供了最初的Eclipse代码基础,包括Platform、JDT 和PDE。目前由IBM牵头,围绕着Eclipse项目已经发展成为了一个庞大的Eclipse联盟,有150多家软件公司参与到Eclipse项目中,其中包括Borland、Rational Software、Red Hat及Sybase等。Eclipse是一个开发源码项目,它其实是 Visual Age for Java的替代品,其界面跟先前的Visual Age for

7、Java差不多,但由于其开放源码,任何人都可以免费得到,并可以在此基础上开发各自的插件,因此越来越受人们关注。近期还有包括Oracle在内的许多大公司也纷纷加入了该项目,并宣称Eclipse将来能成为可进行任何语言开发的IDE集大成者,使用者只需下载各种语言的插件即可。Eclipse 插件开发环境虽然大多数用户很乐于将 Eclipse 当作 Java IDE 来使用,但 Eclipse 的目标不仅限于此。Eclipse 还包括插件开发环境(Plug-in Development Environment,PDE),这个组件主要针对希望扩展 Eclipse 的软件开发人员,因为它允许他们构建与 E

8、clipse 环境无缝集成的工具。由于 Eclipse 中的每样东西都是插件,对于给 Eclipse 提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。基于 Eclipse 的应用程序的突出例子是 IBM 的 WebSphere Studio Workbench,它构成了 IBM Java 开发工具系列的基础。例如,WebSphere Studio Application Developer 添加了对 JSP、servlet、EJB、XML、Web 服务和数据库访问的支持。Eclipse的主要组成Eclipse是一个开放源代码的软件开发项目,专注于为高

9、度集成的工具开发提供一个全功能的、具有商业品质的工业平台。它主要由Eclipse项目、Eclipse工具项目和Eclipse技术项目三个项目组成,具体包括四个部分组成Eclipse Platform、JDT、CDT和PDE。JDT支持Java开发、CDT支持C开发、PDE用来支持插件开发,Eclipse Platform则是一个开放的可扩展IDE,提供了一个通用的开发平台。它提供建造块和构造并运行集成软件开发工具的基础。Eclipse Platform允许工具建造者独立开发与他人工具无缝集成的工具从而无须分辨一个工具功能在哪里结束,而另一个工具功能在哪里开始。Eclipse SDKEclips

10、e SDK(软件开发者包)是Eclipse Platform、JDT和PDE所生产的组件合并,它们可以一次下载。这些部分在一起提供了一个具有丰富特性的开发环境,允许开发者有效地建造可以无缝集成到Eclipse Platform中的工具。Eclipse SDK由Eclipse项目生产的工具和来自其它开放源代码的第三方软件组合而成。Eclipse项目生产的软件以 GPL发布,第三方组件有各自自身的许可协议。2、总体设计2.1 基本图形按钮基本图形按钮包括:Pencil(随笔画)、Line(直线)、Rect(矩形)、fRect(实心矩形)、Oval(椭圆)、fOval(实心椭圆)、Circle(圆)

11、、fCircle(实心圆)、RoundRect(圆角矩形)、frrect(实心圆角矩形)、Rubber(橡皮擦)、Word(字)。基本图形都继承自同一个父类:drawings。Drawings具有的变量(属性):int x1, y1, x2, y2; /用来存放相应图形元素的左边int R, G, B; /用来存放图形色彩信息float stroke; /用来存放画笔粗细int type; /用来保存图形类型string s1; /用来保存输入文字字符串string s2; /用来保存字体类型字符串同时,drawings还有方法: Void draw(Graphics2D g2d) ;draw

12、()方法中用到了java绘图里面的Graphics2D类,所有继承drawings类的图形子类都重写此方法。这就是Java中类继承的概念。2.2 基本操作按钮1. New:新建一个图形文件。2. Open:打开一个图形文件。3. Save:保存当前图形文件。2.3 菜单及其组成1. File菜单项,包括:New(新建一个图形文件)、Load(打开一个图形文件)、Save(保存一个图形文件)、Exit(退出程序)。2. Color菜单项:用来设置当前颜色。3. Stroke菜单项:用来设置当前画笔粗细。4. Help菜单项:有关的程序帮助提示。2.4 其他功能组成1. 选择颜色和设置当前画笔粗细

13、的按钮分别为:Color、Stroke。2. 选择当前字体风格的选择框为:BOLD、ITALIC,用以设置当前字体的风格。3. 选择当前字体的下来是复选框为:Styles。2.5 完成的程序界面图为:图2-1 完成的程序界面效果图3、详细设计与实现3.1 新建一个图形文件单击工具栏上的图标,或选择File New菜单,则清除当前所绘制的图像,回到初始画面,如图4-1所示。3.2 打开已有的文件 单击工具栏上的图标,或选择FileLoad菜单,则清除当前所绘制的图像,并弹出打开文件对话框要求选择打开的文件,如图5-1所示。图3-1 选择打开文件对话框3.3 保存 单击工具栏上的图标,或者选择Fi

14、leSave菜单,则弹出要求保存文件对话框,如图5-2所示。图3-2 保存文件对话框3.4 绘制基本图形基本图形包括:1. Pencil:随笔画,图标为。2. Line:直线,图标为。3. Rect:矩形,图标为。4. fRect:实心矩形,图标为。5. Oval:椭圆,图标为。6. fOval:实心椭圆,图标为。7. Circle:圆,图标为。8. Fcircle:实心圆,图标为。9. RoundRect:圆角矩形,图标为。10. frRect:实心圆角矩形,图标为。11. Rubber:橡皮擦,图标为。画图时,单击工具栏上相应图形的图标,然后用鼠标拖动,在绘图区域内进行绘画即可。3.5 设

15、置画笔大小 单击工具栏上的图标,或者单击StrokeSet Stroke菜单,则弹出相应的设置当前画笔粗细对话框,如图5-3所示。 图3-3 设置当前画笔粗细对话框3.6 选择颜色 单击工具栏上的图标,或单击ColorChoose Color菜单,则弹出相应的选择当前画图颜色对话框,如图5-4所示。图3-4 选择颜色对话框3.7 选择字体风格 在工具栏区域,可以选择相应的字体风格,有粗体和斜体两种风格可供选择。3.8选择字体 在工具栏区域,可以选择字体,本程序中有如下几种字体可供选择:宋体,隶书,华文彩云,仿宋-GB2312,华文行楷,Times New Roman,Serif,Monospa

16、ced,SonsSerif,Garamond。3.9 程序结构说明 本程序主体文件为一个文件:MiniDrawPad.Java。其中包括的程序段有:1. MiniDrawPad():构造函数,用以初始化。2. chooseColor():选择当前绘图颜色程序段。3. setStroke():设置当前画笔粗细程序段。4. loadFile():调用图形文件程序段。5. newFile():新建一个图形文件程序段。6. saveFile():保存当前所绘制图形程序段。7. createNewItem():新建一个基本图形单元程序段。相应的内部类有:1. ButtonHandler:用来处理基本图形

17、单元的按钮事件。2. ButtonHandler1:用来处理New、Open、Save三个操作按钮的按钮事件。3. DrawPanel:用老创建绘图区域的子类。4. MouseA:继承了MouseAdapter,用来完成鼠标相应事件的操作,如单击、松开、进入和离开等。5. MouseB:继承了MouseMotionAdapter,用来完成鼠标拖动和鼠标移动时的相应操作。4、系统测试4.1 运行结果1. 主界面框架 主界面类继承自JFrame类,包括构造函数及各种功能的定义,主要代码如下 :import java.awt.*;import java.awt.geom.*;import java.

18、awt.event.*;import javax.swing.*;import java.io.*;import java.util.*;public class MiniDrawPad extends JFrame /主类,扩展了JFrame类,用来生成主界面 private ObjectInputStream input; private ObjectOutputStream output; /定义输入输出流,用来调用和保存图像文件 private JButton choices; /按钮数组,存放以下名称的功能按钮 private String names= New, Open, Sav

19、e, /这三个是基本操作按钮,包括新建、打开、保存 Pencil, /铅笔画,也就是用鼠标拖动着随意绘图 Line, /绘制直线 Rect, /绘制空心矩形 fRect, /绘制以指定颜色填充的实心矩形 Oval, /绘制空心椭圆 fOval, /绘制以指定颜色填充的实心椭圆 Circle, /绘制圆形 fCircle, /绘制以指定颜色填充的实心圆形 RoundRect, /绘制空心圆角矩形 frRect, /绘制以指定颜色填充的实心圆角矩形 Rubber, /橡皮擦,可用来擦去已经绘制好的图案 Color, /选择颜色按钮,可用来选择需要的颜色 Stroke, /选择线条粗细的按钮,输入需

20、要的数值可以实现绘图线条粗细的变化 Word /输入文字按钮,可以在绘图板上实现文字输入 ; private String styleNames= 宋体 , 隶书 , 华文彩云 , 仿宋 , 华文行楷 , 方正舒体 , Times New Roman , Serif , Monospaced , SonsSerif , Garamond ; /可供选择的字体项 private Icon items; private String tipText= /这里是鼠标移动到相应按钮上面上停留时给出的提示说明条 Draw a new picture, Open a saved picture, Save

21、 current drawing, Draw at will, Draw a straight line, Draw a rectangle, Fill a ractangle, Draw an oval, Fill an oval, Draw a circle, Fill a circle, Draw a round rectangle, Fill a round rectangle, Erase at will, Choose current drawing color, Set current drawing stroke, Write down what u want ; JToolB

22、ar buttonPanel ; /定义按钮面板 private JLabel statusBar; /显示鼠标状态的提示条 private DrawPanel drawingArea; /画图区域 private int width=800,height=550; /定义画图区域初始大小 drawings itemList=new drawings5000; /用来存放基本图形的数组 private int currentChoice=3; /设置默认画图状态为随笔画 int index=0; /当前已经绘制的图形数目 private Color color=Color.black; /当前

23、画笔颜色 int R,G,B; /用来存放当前色彩值 int f1,f2; /用来存放当前字体风格 String style1; /用来存放当前字体 private float stroke=1.0f; /设置画笔粗细,默认值为1.0f JCheckBox bold,italic; /定义字体风格选择框 /bold为粗体,italic为斜体,二者可以同时使用 JComboBox styles; public MiniDrawPad() /构造函数 super(Drawing Pad); JMenuBar bar=new JMenuBar(); /定义菜单条 JMenu fileMenu=new

24、 JMenu(File); fileMenu.setMnemonic(F);2. 新建、保存、打开、退出菜单项代码如下:/新建文件菜单条 JMenuItem newItem=new JMenuItem(New); newItem.setMnemonic(N); newItem.addActionListener( new ActionListener() public void actionPerformed(ActionEvent e) newFile(); /如果被触发,则调用新建文件函数段 ); fileMenu.add(newItem);/保存文件菜单项 JMenuItem saveI

25、tem=new JMenuItem(Save); saveItem.setMnemonic(S); saveItem.addActionListener( new ActionListener() public void actionPerformed(ActionEvent e) saveFile(); /如果被触发,则调用保存文件函数段 ); fileMenu.add(saveItem);/打开文件菜单项 JMenuItem loadItem=new JMenuItem(Load); loadItem.setMnemonic(L); loadItem.addActionListener(

26、new ActionListener() public void actionPerformed(ActionEvent e) loadFile(); /如果被触发,则调用打开文件函数段 ); fileMenu.add(loadItem); fileMenu.addSeparator();/退出菜单项 JMenuItem exitItem=new JMenuItem(Exit); exitItem.setMnemonic(X); exitItem.addActionListener( new ActionListener() public void actionPerformed(Action

27、Event e) System.exit(0); /如果被触发,则退出画图板程序 ); fileMenu.add(exitItem); bar.add(fileMenu);3. 线条宽度、颜色、提示功能 代码如下:/设置颜色菜单条 JMenu colorMenu=new JMenu(Color); colorMenu.setMnemonic(C);/选择颜色菜单项 JMenuItem colorItem=new JMenuItem(Choose Color); colorItem.setMnemonic(O); colorItem.addActionListener( new ActionLi

28、stener() public void actionPerformed(ActionEvent e) chooseColor(); /如果被触发,则调用选择颜色函数段 ); colorMenu.add(colorItem); bar.add(colorMenu);/设置线条粗细菜单条 JMenu strokeMenu=new JMenu(Stroke); strokeMenu.setMnemonic(S);/设置线条粗细菜单项 JMenuItem strokeItem=new JMenuItem(Set Stroke); strokeItem.setMnemonic(K); strokeIt

29、em.addActionListener( new ActionListener() public void actionPerformed(ActionEvent e) setStroke(); ); strokeMenu.add(strokeItem); bar.add(strokeMenu);/设置提示菜单条 JMenu helpMenu=new JMenu(Help); helpMenu.setMnemonic(H);/设置提示菜单项 JMenuItem aboutItem=new JMenuItem(About this Drawing Pad!); aboutItem.setMnemonic(A); aboutItem.addActionListener( new ActionListener() public void actionPerformed(ActionEvent e) JOptionPane.showMessageDialog(null, This is a m

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

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