华北科技学院课程设计说明书班级: 网络B101设计题目: 画图板软件开发和设计评语:_____________________________________________________________________________________________________________________________________________________________________________________________________评阅成绩:____评阅教师:_____目录1 引言 (1)1.1课程设计选题 (1)1.2课程设计的目的 (1)1.3本选题的设计背景 (1)2 需求分析 (1)2.1 功能需求 (1)2.2 系统的开发运行环境 (2)3 总体设计 (2)3.1 系统体系结构设计 (2)3.2系统功能模块及主要类设计 (3)4 详细设计与实现 (6)4.1 菜单栏模块 (6)4.2 文字字型工具栏模块 (7)4.3 工具栏模块 (8)4.4 颜色选择面板模块 (10)4.5 鼠标状态栏模块 (12)4.6 画图区域以及整体布局模块 (13)5 小结和展望 (15)参考文献 (17)附录 (17)使用说明书 (17)1引言1.1课程设计选题《画图板软件开发和设计》1.2课程设计的目的使学生巩固和加深以Java 语言为基础的面向对象编程技术理论知识的理解,提高实际动手编程能力的培养,掌握以Java为核心的应用软件开发方案,达到能独立阅读、编制和调试一定规模的Java程序的水平。
1.3本选题的设计背景平时生活中,我们会需要处理一些基本的图像,也有可能需要花一些简单的图像,平时所使用的图形处理工具有 PhotoShop、Windows 画图工具等,其中PhotoShop 是一款非常强大的图形处理工具,Windows 画图工具则是一款较为简单的画图工具,功能较为简单,用Windows画图工具,是一种比较简单与具有代表性的画图工具,虽然功能不够强大,但具有大多图片处理程序所必需的基本功能:铅笔画图、各种数学函数图形、填色、取色、橡皮擦等等。
所以这次课程设计我做的就是一个仿照Windows画板的程序。
通过画图板软件开发与设计,更深刻地体会java语言较之其他语言在图形用户界面的优势。
熟悉java语言中常用的关于画图的各个类的功能和常用的方法(java图形用户界面中的众多函数与类的关系),并在实验过程中加深对java语言的理解与运用。
2需求分析2.1 功能需求对于绘图软件,应具备最基本的绘制直线,矩形框,圆形框,椭圆框等最基本功能,此外,要可以对绘制的图形进行修改;将绘制好的图形进行保存,打开以前保存的图形;在需要的时候,可以绘制实心矩形,实心圆形,实心椭圆等常见的几何图形。
可以在绘图区添加文字,方便注释。
可以修改颜色。
要有自由铅笔的功能,可以方便自由添加曲线。
有橡皮擦的功能选项可以对图像进行局部擦除。
2.2 系统的开发运行环境本系统开发平台: Java本系统集成开发环境:Eclipse本系统运行环境: Windows xp3总体设计3.1 系统体系结构设计这个画图板程序的界面包括菜单栏、文字字型工具栏、工具栏,绘图区、颜色选择面板和鼠标状态栏。
以下是对各部分所包含的内容作介绍:窗口:整个界面的最外围部分,显示画图板的名字;文字字型工具栏:包括对文字是否加粗、倾斜的设置,以及对要输入的文字的字体设置。
菜单栏:包括文件,颜色,编辑,图像,帮助5个菜单项;文件:包括新建,保存,打开,退出4个选项;颜色:包括编辑颜色选项,可弹出颜色选择对画框;编辑:包括撤销,恢复,复制,粘贴4个选项;图像:包括图像缩放,翻转,旋转,倾斜4个选项,其中翻转包含水平翻转和竖直翻转两个子选项;帮助:包括帮助主题,关于画图板2个选项。
关于画图板显示关于画图板及作者的一些信息介绍;工具栏:包括自由画笔(铅笔)、直线、空心矩形、填充矩形、空心椭圆、填充椭圆、空心圆形、填充圆形、空心圆角矩形、填充圆角矩形、橡皮擦、设置背景颜色、画笔粗细设置"、输入文字"的按钮。
绘图区:用于绘制图形。
颜色择面板:这是一个简单的颜色选择面板,只有最基本的几种颜色选择。
状态栏:显示鼠标所处的状态和位置。
初始状态显示提示信息“欢迎进入我的绘图板世界”。
光标移动后,显示光标状态及其所在位置。
3.2系统功能模块及主要类设计1.功能描述该画图板可以用于画直线、矩形、实心矩形、椭圆、实心椭圆、圆形、实心圆形、等各类常见的几何图形。
当出现错误时,可以用橡皮擦工具对图像进行局部清除,也可以新建一个文件覆盖掉原文件。
可以通过颜色选择面板选择颜色实现对画图板的画笔颜色的设置,也可以通过菜单栏颜色菜单的编辑颜色选项打开颜色选择对话框选择较为复杂的颜色。
还可以点击工具栏中的设置背景色按钮选择颜色设置整个画面的背景颜色;当画笔大小不合适时,可以通过点击工具栏中的设置画笔粗细按钮进行设置;当需要时,用户可以向画图板中添加文字,以鼠标点击位置,为文字输入的位置,可以通过文字字型工具栏设置文字的样式,是否加粗或倾斜、选择什么字体。
工具栏还可以移动。
若不了解画图板使用方法,可以查看附录中的使用说明书;此外,帮助菜单下有关于画图板和作者的介绍;用户可以在文件中选择保存选项保存绘制的图形,可以选择打开,新建,另存等实现相应的操作。
仿照windows画板界面对各部分进行分配使该画图板的界面尽量合理。
2. 结构图总体结构图(主要模块):菜单栏结构图:画图板鼠标状态栏颜色选项栏绘图区工具栏菜单栏图3.1程序总体结构图(主要模块)3.在该画图板软件程序中的主要类、方法及其功能如下表: 类 名功能 Class aaaaa主类,扩展了JFrame 类,用来生成主界面内部类:Class ColorHandler 颜色选择面板侦听器ColorHandler 类,内部类,用来侦听选择颜色选择面板中颜色按钮的操作Class ButtonHandle 按钮侦听器ButtonHanler 类,内部类,用来侦听基本按钮的操作Class ButtonHandler1 按钮侦听器ButtonHanler1类,用来侦听颜色选择、画笔粗细设置、文字输入按钮的操作Class mouseA 鼠标事件mouseA 类,继承MouseAdapter ,用来完成鼠标相应事件操作Class mouseB 鼠标事件mouseB 类继承了MouseMotionAdapter ,用来完成鼠标拖动和鼠标移动时的相应操作Class checkBoxHandler 选择字体风格时候用到的事件侦听器类,加入到字体风格的选择框中Class DrawPanel 画图面板类,用来画图帮助图像 编辑 颜色 文件 菜单栏新建 保存 打开 退出 编辑辑颜色 撤销 恢复 复制 粘贴 图像缩放 翻转 旋转 倾斜 帮助主题 关于画图板水平翻转 竖直翻转图3.2菜单栏结构图外部类:Class Drawings 父类,基本图形单元,用到串行化接口,保存时所用class Line 直线类class Rect 矩形类class fillRect 实心矩形类class Oval 椭圆类class fillOval 实心椭圆class Circle 圆类class fillCircle实心圆类class RoundRect圆角矩形类class fillRoundRect实心圆角矩形类class Pencil 随笔画类(铅笔画)class Rubber 橡皮擦类class Word 输入文字类主要的方法及其功能如下表:方法名功能createNewItem() 新建一个画图基本单元对象的程序段主要用于判断工具栏按钮事件chooseColor() 选择当前颜色程序段主要用于菜单选项中的编辑颜色及工具栏中设置背景颜色按钮的实现setStroke() 选择当前线条粗细程序段SetbgColor()选择背景颜色程序段saveFile() 保存图形文件程序段loadFile() 打开一个图形文件程序段newFile() 新建一个文件程序段主类aaaaa类中的构造方法实现了界面的初始化设计。
实用setTitle函数将画图板的名字设置为“画图板”,默认窗口的初始位置为(0,0),设置大小,设置窗体的可见性为真,设置鼠标的属性为HAND_CURSOR,设置当单击窗体右上角的关闭图标时,程序做DO_NOTHING_ON_CLOSE处理,为窗体添加窗口监听器,当按关闭按钮时用showConfirmdialog函数弹出“退出前是否保存?”的对话框;添加菜单条;为工具栏中的各按钮添加图片,之后将按钮添加到工具条中。
将工具栏中的弹出菜单通过调用ToolMenu函数加入进去;为个按钮加上相应的监听器;将字体列表加入到工具栏中,设置下拉列表的最大显示行数为10行。
其它类均为主类服务。
4详细设计与实现4.1 菜单栏模块1.功能设计菜单栏实现的功能主要包括:(1).对文件的保存、新建、打开等基本操作。
(2).对图像或文字对象的复制、粘贴、翻转、图像缩放、旋转等操作。
(3).选择较为复杂的颜色(设置整个画面的背景颜色或文字的颜色等)。
2.界面设计菜单栏界面图:3.模块算法(或重要代码段)在菜单栏模块中主要格局的实现:(1).创建菜单条JMenuBar bar = new JMenuBar();(2).创建实现功能的菜单项,对每个菜单进行监听。
为编辑颜色菜单项添加监听器:colorItem.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e){ chooseColor(); //如果被触发,则调用选择颜色函数段}});(3).创建菜单,并将每个菜单对应的菜单项添加到对应的菜单中。
4.2 文字字型工具栏模块1.功能设计文字字型工具栏模块是比较简单的一个模块,用以设置文字是否加粗、倾斜、是什么样的字体。
2.界面设计3.模块算法(或重要代码段)(1).用JCheckBox类创建按钮bold(加粗)、italic(倾斜),并设置背景颜色。
(2).创建事件侦听器类checkBoxHandler。
checkboxHandler实现了接口ItemListener,为复选框的监听器类。
重写了方法itemStateChanged。
当事件源被选中时则设置字体为响应的风格,否则字体风格为默认风格;通过调用系统的getSource()函数获得事件源,通过ItemEvent的值判断该按钮是否被选中。
(3).创建checkBoxHandler对象cHandler。