推荐一个利用GUI方法实现简单绘图功能的应用程序 精Word格式文档下载.docx

上传人:b****3 文档编号:14842436 上传时间:2022-10-25 格式:DOCX 页数:23 大小:208.26KB
下载 相关 举报
推荐一个利用GUI方法实现简单绘图功能的应用程序 精Word格式文档下载.docx_第1页
第1页 / 共23页
推荐一个利用GUI方法实现简单绘图功能的应用程序 精Word格式文档下载.docx_第2页
第2页 / 共23页
推荐一个利用GUI方法实现简单绘图功能的应用程序 精Word格式文档下载.docx_第3页
第3页 / 共23页
推荐一个利用GUI方法实现简单绘图功能的应用程序 精Word格式文档下载.docx_第4页
第4页 / 共23页
推荐一个利用GUI方法实现简单绘图功能的应用程序 精Word格式文档下载.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

推荐一个利用GUI方法实现简单绘图功能的应用程序 精Word格式文档下载.docx

《推荐一个利用GUI方法实现简单绘图功能的应用程序 精Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《推荐一个利用GUI方法实现简单绘图功能的应用程序 精Word格式文档下载.docx(23页珍藏版)》请在冰豆网上搜索。

推荐一个利用GUI方法实现简单绘图功能的应用程序 精Word格式文档下载.docx

2.3编程环境·

3

2.4.工具说明·

3系统流程·

4

4设计UML类图·

5

5设计层次结构树·

6

6运行结果与分析·

7

7设计总结·

12

8.参考文献·

13

9.附录·

14

 

1程序设计内容概论

1.1程序设计的目的

本程序是一个利用GUI方法实现简单绘图功能的应用程序。

1.2程序设计的任务

程序主要创建了5个JRadioButton,1个JCheckBox,2个JButton以及一个JSlider用于选择绘画功能操作。

接着创建三个面板用于设计绘图的整体画板,并利用按钮监听器,滑动条和鼠标操作实现在面板上绘图的简单功能。

在程序中,利用创建JRadioButton实现多选一绘画功能,创建JCheckBox实现填充功能,而2个JButton则分别实现颜色更变和清除画板。

同时本程序使用了鼠标点击,鼠标释放和鼠标拖拽来进行画板绘画,利用鼠标点击实现初点坐标获取,在绘画曲线时,主要通过鼠标拖拽实现在画板上不断绘制(不断进行末点坐标赋值初点);

在绘画直线时,主要通过鼠标拖拽达到动态效果,并通过鼠标释放最终描绘出直线;

在绘画矩形和圆时,主要通过鼠标拖拽达到动态效果,并通过鼠标释放最终描绘出矩形和圆;

在绘画粗线时,主要通过不断重画实心圆来实现。

2设计思想

2.1需求分析

2.1.1面板布局

2.1.2实现绘画图形(曲线,直线,圆,椭圆,矩形)

3.1.3填充功能(其中包括圆的填充,椭圆圆的填充,矩形圆的填充)

3.1.4画笔的粗细及画笔的颜色变更

3.1.5实现鼠标单击和鼠标拖拽进行绘图

2.2总体设计

2.2.1面板布局

主要创建5个JRadioButton,1个JCheckBox,2个JButton以及一个JSlider,同时创建三个面板(一个面板用于绘图,一个面板用于把所有按钮及滑动条等添加进去,一个面板用于把已经添加了按钮和滑动条的面板添加进去,用于区分绘图面板和按钮面板的位置),利用盒式布局管理器将所有的组件(包括5个JRadioButton,1个JCheckBox,2个JButton以及一个JSlider)进行布局,再利用边界布局管理器对面板进行位置编排,绘图面板在中间,另一个在西边。

最终完成了画板的布局。

2.2.2实现绘画图形(曲线,直线,圆,椭圆,矩形)

在实现绘画的功能,主要通过创建ButtonGroup从而把所有的JRadioButton都添加进去,从而达到在描绘图形时多选一的选择功能;

利用按钮监听器,利用Objectsource=event.getSource()语句当source==op1时进行曲线绘画,在实现曲线绘画的功能时,主要利用了鼠标的点击和鼠标的拖拽,通过鼠标的点击来扑捉第一个坐标点,然后利用鼠标的拖拽来不断变换第一个点的坐标(利用sx=x和sy=y语句),从而将所有点都连接起来,最终实现了在画板上描绘曲线的功能;

当source==op2时进行直线绘画,在实现直线绘画的功能时,主要利用了鼠标的点击,鼠标的释放和鼠标的拖拽,通过鼠标的点击来扑捉直线的第一个坐标点,然后利用鼠标的拖拽选择直线的另一个点,最终通过鼠标的释放在画板上描绘出直线来;

当source==op3时进行圆和椭圆绘画,在实现圆和椭圆绘画的功能时,主要利用了鼠标的点击,鼠标的释放和鼠标的拖拽,通过鼠标的点击来扑捉圆和椭圆的一个坐标点,然后利用鼠标的拖拽选择圆和椭圆的大小,最终通过鼠标的释放在画板上描绘出圆和椭圆来;

当source==op4时进行矩形绘画,在实现矩形绘画的功能时,主要利用了鼠标的点击,鼠标的释放和鼠标的拖拽,通过鼠标的点击来扑捉矩形的一个坐标点,然后利用鼠标的拖拽选择矩形的大小,最终通过鼠标的释放在画板上描绘出矩形来。

2.2.3填充功能(其中包括圆的填充,椭圆圆的填充,矩形圆的填充)

通过JCheckBox创建一个按钮,利用按钮监听器决定是否要描绘填充图形,如果是则将实现赋值fill=true,否则fill=false,然后通过布尔值判断在描绘图形时是draw还是fill,如果布尔值是ture时则实现了图形的填充。

2.2.4画笔的粗细及画笔的颜色变更

画笔的粗细主要是通过不断地重画填充圆来实现,通过鼠标的拖拽不断地在画板上进行重画;

而粗细则由创建的JSlider来调节圆的半径,如果圆的半径越大则所绘出的曲线越粗,反则越细;

画笔的颜色变更主要通过创建的JButton按钮,利用按钮监听器,当按下了按钮,则实现c=JColorChooser.showDialog(right,"

choose"

c)语句,从而把初始的画笔颜色(黑色)改变。

2.2.5实现鼠标单击和鼠标拖拽进行绘图

通过语句right.addMouseListener和语句addMouseMotionListener(newlisten1())来设计在right面板上进行鼠标单击和鼠标拖拽等绘图,通过鼠标的单击(mousePressed)获取图形的第一个点,再利用鼠标的拖拽(mouseDragged)选择图形的形状,大小和方向等。

2.3编程环境

本次编程的环境为JDK。

2.4.工具说明

本次编程工具为UltraEdit。

开始

f=1

f=2

f=3

f=4

f=5

填充

fill=true

曲线按钮

直线按钮

画圆按钮

矩形按钮

粗线按钮

颜色

清除

画笔粗细

fill=false

size改变

改变颜色

输入颜色

3系统流程

YN

画出曲线

画出直线

画出圆

画出矩形

画出粗线

画板

结束

4设计UML类图

绘图程序UML类图

5设计层次结构树

6运行结果与分析

6.1整体画板展示

画板分析:

利用盒式布局管理器将所有的组件(包括5个JRadioButton,1个JCheckBox,2个JButton以及一个JSlider)进行布局,再利用边界布局管理器对面板进行位置编排,绘图面板在中间(Center),另一个在西边(West)。

6.2用曲线、直线、圆、矩形画黑白小屋子

6.3用粗线写祝福语

6.4.用填充效果画图

6.5.用带有颜色的画笔画图

7设计总结

在本次java课程设计中,我设计了一个绘图应用程序。

该绘图应用程序实现了画曲线,直线,画圆,画矩形和粗线功能,同时可以实现图形的填充和颜色的变换,另外还设计了一个清除画板按键,可以应用于平时一些简单的画图操作。

在本绘图应用程序中,所存在的问题是图形的种类不够完善,未能实现画弧,画多边形等功能,另外一个不足的地方时整个画板只能画一种颜色的图形,未能满足更高要求的绘画需要。

在本次java课程设计中,我收获了很多。

特别是在编写java程序时,必须先对程序的功能进行初步的分析,得到程序中每一个功能所需要用到的方法或思路,同时根据功能的相似来设计一类功能的实现,并通过某些语句的改变达到多功能效果,例如在本次设计中,分析可得圆和矩形有很大的相似度,利用drawOval和drawRect的变换可以达到绘画的效果。

在设计图形的填充时,我参考了本学期所学的JCheckBox方法和判断语句,有效地处理了图形的填充问题,并系统地学习了鼠标拖拽的应用。

在本次设计中,最难处理的问题是用鼠标拖拽来画直线,圆和矩形,因为在使用鼠标拖拽时,会出现在画板上不断重画的效果,无法达到自己想要的效果,后来在同学的帮助和参考部分java教科书下,成功了解决了这个问题,而在解决这个问题,使我认识到学习不能只局限于课本,必要时应该要多阅读一些相关的java书籍,从而让自己的知识面更加广,处理问题更加有效率。

所以,经过本次编写绘图应用程序,使我把本学期所学的java知识充分地运用到课程设计中来,既提高了自己学习的主动性,同时为自己以后的学习打下了更深的基础。

参考文献

[1]JohnLewis、WillianLoftus,Java程序设计教程,北京:

电子工业出版社,20XX;

[2]杨树林、胡洁萍,Java语言最新实用案例教程,北京:

清华大学出版社,20XX;

[3]谭浩强,C程序设计,北京:

清华大学出版社,20XX。

附录:

importjavax.swing.JFrame;

publicclassDraw1

{

publicstaticvoidmain(String[]args)

{

JFrameframe=newJFrame("

Draw"

);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

DrawPaneldraw=newDrawPanel();

frame.getContentPane().add(draw);

frame.pack();

frame.setVisible(true);

}

}

importjava.awt.*;

importjava.awt.event.*;

importjavax.swing.*;

importjavax.swing.event.*;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 环境科学食品科学

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

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