Java画图板程序设计报告(6)

2019-08-03 10:29

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


Java画图板程序设计报告(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:《喂自己影子吃饭的人》详细解析

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: