1.本课程设计的目的
(1)通过课程设计把课堂上讲的内容融会贯通,学会设计程序、开发应用
软件、开发系统软件等各项工作。
(2)通过实习掌握语言的语法结构,理解类和对象的概念,准确的使用各
种数据类型,对面向对象中的继承和多态的概念要理解、会使用,在程序中提
高代码的重用性,使设计的程序结构清晰、易于维护。
2.课程设计的任务及要求
1)基本要求:
(1)能用拖橡皮筋的手法绘制各类图形(直线、椭圆、矩形、文字)
(2)支持画笔颜色、文字大小设置;
(3)能将画面中的所有图形存储到文件中;
(4)能从文件读取图形进行增补;
(5)采用对话框获取图形文件名。
2)创新要求:
在基本要求达到后,可进行创新设计,如改善算法性能、友好的人机界面。
也可以考虑如何利用鼠标选取图形,删除。
3)课程设计论文编写要求
(1)要按照书稿的规格打印与写课程设计论文
(2)论文包括目录、设计思路、具体实现、运行调试与分析讨论、设计体
会与小结、参考文献、附录(源代码)等
(3)课程设计论文装订按学校的统一要求完成
4)答辩与评分标准:
(1)完成基本算法设计:20 分;
(2)完成设计过程 :40 分;
(3)完成调试:20 分;
(4)回答问题:20 分。
5)参考文献:
【1】 丁振凡.java 语言实用教程.北京:北京邮电大学出版社,2004
【2】 侯捷.Thinking
2e 中文版 .北京:清华大学出版社,
in
Java
2003
【3】 李尊朝.java 语言程序设计.北京: 中国铁道出版社,2004.2
6)课程设计进度安排
内容
构思及收集资料
天数
1
1
地点
图书馆
编码与调试
撰写论文
2.5
1.5
实验室
图书馆、实验室
学生签名:
2007 年 6 月 18 日
课程设计(论文)评审意见
(1)完成基本算法(20 分):优( )、良( )、中( )、一般( )、差( );
(2)完成调试 (20 分):优( )、良( )、中( )、一般( )、差
( );
(3)创新设计 (20 分):优( )、良( )、中( )、一般( )、差
( );
(4)设计分析 (20 分):优( )、良( )、中( )、一般( )、差
( );
(5)回答问题 (20 分):优( )、良( )、中( )、一般( )、差
( );
(6)格式规范性及考勤是否降等级:是()、否( )
评阅人:
职称:
年 月 日
中文摘要
该程序是一个图形用户界面的 JAVA 图形编辑系统,由于需要丰富的用户
界面组件,该图形编辑系统界面采用了 Swing 包,该程序实现了图形编辑系统
的基本功能 :新建文件、打开文件、保存文件、退出编辑系统等文件功能,
还有用铅笔随手画,画直线,矩形,椭圆,圆等基本图形的绘画功能,还可以
在更多图形菜单栏中选择绘画带填充的图形,该图形编辑器还带有文字输入功
能(图形文字),可以选择字体类型(正常,粗体,斜体),在操作的时候可以
2
选择线条的粗细和颜色,橡皮擦功能可以帮助修改绘制的图形文字。
在设计的时候考虑到在执行不同的操作的时候鼠标的形状也会随着改
变,比如:在用铅笔绘画的时候鼠标的形状就显现是一只铅笔的样子,在用橡
皮擦的时候鼠标就转换成一个黑的小填充园进行擦除,由于时间的关系最终没
有实现
对于图形编辑系统,用鼠标拖动,删除图形是一个技术性的难点,以后
会加强学习,实现此功能。
目 录
一 、 题目内容及要求………………………………………5
二 、 设计思路………………………………………………5
3
三 、 具体实现………………………………………………8
四 、 运行调试和分析讨论…………………………………15
五 、 设计体会和小结………………………………………17
六 、 致谢……………………………………………………18
七 、 参考文献………………………………………………18
一、 题目内容及要求
制作一个友好的图形用户界面,操作简单易行的图形编辑系统,其具体
要求如下:
(1)能用拖橡皮筋的手法绘制各类图形(直线、椭圆、矩形、文字)
(2)支持画笔颜色、文字大小设置;
(3)能将画面中的所有图形存储到文件中;
(4)能从文件读取图形进行增补;
(5)采用对话框获取图形文件名。
4
(6)也可以思考一先如何利用鼠标选取图形,删除
二、 设计思路
1、功能规划
将主界面设置为当前 Windows 风格的,然后在一个 Container 里设置菜
单区域,常用功能区域,绘图区域和状态栏。
菜单区域设置“文件”(新建,保存,打开,退出)用来对文件的不同
操作,“更多形状”(画实心矩形,实心圆,实心椭圆)用来扩充绘画功能,“颜
色”用来通过调用系统颜色面板选择线条颜色,“帮助”用来添加一些附加信
息,画板,作者的介绍等;
常用功能区域里面添加了铅笔,直线,矩形,椭圆,圆,橡皮擦,粗细,
文字等常用功能按钮用来完成不同的操作,还安置了两个复选框(粗体,斜体)
来设置图形式文字输入的状态。排在 North 位置
绘图区域用来实现操作的操作显示平台,排在 Center 位置
状态栏主要用来纪录鼠标的坐标改变, 放在 South 位置
2、工作原理图
5
开始
初始化绘图区域
新建或默认文件
打开已有文件
绘制和修改图形
新建文件
保存图片文件
退出程序
结束
3、 打开已保存的图形文件
6
开始
选择文件
格式是否正确
是
否
取消读取
读取文件
系统报错
4、保存绘制的图形
结束
开始
输入保存文件名
保存图形
取消保存
结束
7
三、 具体实现
1、用户自定义类
类名:Huaban
作用:生成主界面
继承的父类:JFrame
主要的类成员:
//定义功能按钮面板
//显示鼠标状态的提示条
input;
private ObjectInputStream
private ObjectOutputStream output;输入输出流,打开和保存图像
private JButton choices[];存放功能按钮
private String names[ ]={ 存放功能按钮的名字 };
private String tipText[]={鼠标放到功能按钮上的提示语}
private Icon items[];存放各功能按钮的Icon
Icon wei=new ImageIcon("wang.gif") ;//介绍我的
Icon icon=new ImageIcon("mm.gif") ;//说明的ICON
Icon icon1=new ImageIcon("nn.gif") ;//输入文字的ICON
JToolBar buttonPanel ;
ButtonHandler handler=new ButtonHandler();功能按钮监听 1
ButtonHandler1 handler1=new ButtonHandler1();功能按钮监听2
private JLabel statusBar;
private DrawPanel drawingArea;//画图区域
drawings[] itemList=new drawings[5000];//存放基本图形的大数组
int index=0;
private Color color=Color.black;//当前画笔颜色
JCheckBox bold,italic;//两个字体选择复选框
//开始构造函数 Huaban()
JMenuBar bar=new JMenuBar(); //定义菜单显示 bar
JMenu fileMenu=new JMenu("文件(F)")//定义文件菜单
JMenuItem newItem=new JMenuItem("新建(N)");
JMenuItem saveItem=new JMenuItem("保存(S)");
JMenuItem openItem=new JMenuItem("打开(L)");
JMenuItem exitItem=new JMenuItem("退出(X)");//文件菜单项
JMenu shapeMenu=new JMenu("更多形状(P)");//绘图菜单
JMenuItem frectItem=new JMenuItem("画实心矩形(F)");
JMenuItem fovalItem=new JMenuItem("画实心椭圆(T)");
JMenuItem fcircleItem=new JMenuItem("画实心圆(Q)");//菜单项
JMenu colorMenu=new JMenu("颜色(C)")//颜色菜单
JMenuItem colorItem=new JMenuItem("选择颜色(O)");//菜单项
JMenu helpMenu=new JMenu("帮助(H)")//帮助菜单
//当前已经绘制的图形数目,图形数组下标
8