Java画图板程序设计报告(6)
public void newFile() {
index=0;
currentChoice=3; color=Color.black; stroke=1.0f; createNewItem();
repaint();//将有关值设置为初始状态,并且重画 }
5. 各种画图功能的实现 代码如下:
//定义画图的基本图形单元
class drawings implements Serializable//父类,基本图形单元,用到串行化接口,保存时所用 {
int x1,y1,x2,y2; int R,G,B; float stroke; int type; String s1; String s2;
//定义坐标属性 //定义线条粗细属性 //定义色彩属性 //定义字体属性 //定义字体风格属性
void draw(Graphics2D g2d){};//定义绘图函数 }
class Line extends drawings //直线类 {
void draw(Graphics2D g2d)
{g2d.setPaint(new Color(R,G,B)); g2d.setStroke(new BasicStroke(stroke,
BasicStroke.CAP_ROUND,BasicStroke.JOIN_BEVEL)); g2d.drawLine(x1,y1,x2,y2); } }
class Rect extends drawings//矩形类 {
void draw(Graphics2D g2d)
{g2d.setPaint(new Color(R,G,B));
g2d.setStroke(new BasicStroke(stroke)); g2d.drawRect(Math.min(x1,x2),Math.min(y1,y2), Math.abs(x1-x2),Math.abs(y1-y2)); }
26 / 31
}
class fillRect extends drawings//实心矩形类 {
void draw(Graphics2D g2d)
{g2d.setPaint(new Color(R,G,B));
g2d.setStroke(new BasicStroke(stroke)); g2d.fillRect(Math.min(x1,x2),Math.min(y1,y2), Math.abs(x1-x2),Math.abs(y1-y2)); } }
class Oval extends drawings//椭圆类 {
void draw(Graphics2D g2d)
{g2d.setPaint(new Color(R,G,B));
g2d.setStroke(new BasicStroke(stroke)); g2d.drawOval(Math.min(x1,x2),Math.min(y1,y2), Math.abs(x1-x2),Math.abs(y1-y2)); } }
class fillOval extends drawings//实心椭圆 {
void draw(Graphics2D g2d)
{g2d.setPaint(new Color(R,G,B));
g2d.setStroke(new BasicStroke(stroke)); g2d.fillOval(Math.min(x1,x2),Math.min(y1,y2), Math.abs(x1-x2),Math.abs(y1-y2)); } }
class Circle extends drawings//圆类 {
void draw(Graphics2D g2d)
{g2d.setPaint(new Color(R,G,B));
g2d.setStroke(new BasicStroke(stroke)); g2d.drawOval(Math.min(x1,x2),Math.min(y1,y2), Math.max(Math.abs(x1-x2),Math.abs(y1-y2)), Math.max(Math.abs(x1-x2),Math.abs(y1-y2)) ); } }
class fillCircle extends drawings//实心圆 {
void draw(Graphics2D g2d)
27 / 31
{g2d.setPaint(new Color(R,G,B));
g2d.setStroke(new BasicStroke(stroke)); g2d.fillOval(Math.min(x1,x2),Math.min(y1,y2),
Math.max(Math.abs(x1-x2),Math.abs(y1-y2)), Math.max(Math.abs(x1-x2),Math.abs(y1-y2)) ); } }
class RoundRect extends drawings//圆角矩形类 {
void draw(Graphics2D g2d)
{g2d.setPaint(new Color(R,G,B));
g2d.setStroke(new BasicStroke(stroke));
g2d.drawRoundRect(Math.min(x1,x2),Math.min(y1,y2), Math.abs(x1-x2),Math.abs(y1-y2), 50,35); } }
class fillRoundRect extends drawings//实心圆角矩形类 {
void draw(Graphics2D g2d)
{g2d.setPaint(new Color(R,G,B));
g2d.setStroke(new BasicStroke(stroke));
g2d.fillRoundRect(Math.min(x1,x2),Math.min(y1,y2), Math.abs(x1-x2),Math.abs(y1-y2), 50,35); } }
class Pencil extends drawings//随笔画类 {
void draw(Graphics2D g2d)
{g2d.setPaint(new Color(R,G,B)); g2d.setStroke(new BasicStroke(stroke,
BasicStroke.CAP_ROUND,BasicStroke.JOIN_BEVEL)); g2d.drawLine(x1,y1,x2,y2); } }
class Rubber extends drawings//橡皮擦类 {
void draw(Graphics2D g2d)
{g2d.setPaint(new Color(255,255,255)); g2d.setStroke(new BasicStroke(stroke+4,
BasicStroke.CAP_ROUND,BasicStroke.JOIN_BEVEL));
28 / 31
g2d.drawLine(x1,y1,x2,y2); } }
class Word extends drawings//输入文字类 {
void draw(Graphics2D g2d) {
g2d.setPaint(new Color(R,G,B));
g2d.setFont(new Font(s2,x2+y2,((int)stroke)*18)); if (s1!= null )
g2d.drawString(s1,x1,y1); } }
6. 各功能运行结果
打开、保存、设置线宽、颜色设置功能图分别见3-1, 3-2,3-3, 3-4,这里不再赘述。
图4-1 画矩形、椭圆、圆形、圆角矩形、直线、铅笔功能实现图
29 / 31
图4-2 橡皮擦功能实现图
图4-3 添加文字、设置线宽、设置颜色功能图
30 / 31
图4-4 综合功能图
5 设计小结
通过这次的课程设计的学习,我学到了Java中开发图形应用程序的常用控件、事件处理机制、常用功能的实现,如文件读取、数据流的读取和管理、绘图显示等。 通过这次的学习,让我对面向对象的程序设计有一个总体的把握,从软件工程的角度看,有一个完整的脉络,如需求、分析、设计、实现、测试。在需求中,确定要实现一个类似Windows操作系统中的画板程序,并分析了要实现的功能,通过设计类图理清各个类成员之间的静态关系(即依赖关系)、它们之间的动态关系(即调用关系)。然后编码实现,通过运行验证实现效果。
在今后的学习开发中将一直依据这一原则进行相关的开发。因此自己需要对这一过程有一个大体的认识。
参考文献
1. 黄晓东.Java课程设计案例精编(第二版).中国水利水电出版社。2007 2. 谭浩强.Java软件编程实例教程.北京.清华大学出版社.2008.9
3. 【美】John Lewis William Loftus. Java Software Solutions Foundations of Program Design,Sixth Edition.北京. 电子工业出版社,2009.6 4. 荆涛. 数据库平台及开发工具选择.农经纵横, 1999 (5) : 77~ 79
31 / 31
…… 此处隐藏:1995字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [资格考试]机械振动与噪声学部分答案
- [资格考试]空调工程课后思考题部分整合版
- [资格考试]电信登高模拟试题
- [资格考试]2018年上海市徐汇区中考物理二模试卷(
- [资格考试]坐标转换及方里网的相关问题(椭球体、
- [资格考试]语文教研组活动记录表
- [资格考试]广东省2006年高应变考试试题
- [资格考试]LTE学习总结—后台操作-数据配置步骤很
- [资格考试]北京市医疗美容主诊医师和外籍整形外科
- [资格考试]中学生广播稿400字3篇
- [资格考试]CL800双模站点CDMA主分集RSSI差异过大
- [资格考试]泵与泵站考试复习题
- [资格考试]4个万能和弦搞定尤克里里即兴弹唱(入
- [资格考试]咽喉与经络的关系
- [资格考试]《云南省国家通用语言文字条例》学习心
- [资格考试]标准化第三范式
- [资格考试]GB-50016-2014-建筑设计防火规范2018修
- [资格考试]五年级上册品社复习资料(第二单元)
- [资格考试]2.对XX公司领导班子和班子成员意见建议
- [资格考试]关于市区违法建设情况的调研报告
- 二0一五年下半年经营管理目标考核方案
- 2014年春八年级英语下第三次月考
- 北师大版语文二年级上册第十五单元《松
- 2016国网江苏省电力公司招聘高校毕业生
- 多渠道促家长督导家长共育和谐 - 图文
- 2018 - 2019学年高中数学第2章圆锥曲线
- 竞争比合作更重要( - 辩论准备稿)课
- “案例积淀式”校本研训的实践与探索
- 新闻必须客观vs新闻不必客观一辩稿
- 福师大作业 比较视野下的外国文学
- 新编大学英语第二册1-7单元课文翻译及
- 年产13万吨天然气蛋白项目可行性研究报
- 河南省洛阳市2018届高三第二次统一考试
- 地下车库建筑设计探讨
- 南京大学应用学科教授研究方向汇编
- 2018年八年级物理全册 第6章 第4节 来
- 毕业论文-浅析余华小说的悲悯性 - 以《
- 2019年整理乡镇城乡环境综合治理工作总
- 广西民族大学留学生招生简章越南语版本
- 故宫旧称紫禁城简介




