好文档 - 专业文书写作范文服务资料分享网站

推荐-一个利用GUI方法实现简单绘图功能的应用程序 精

天下 分享 时间: 加入收藏 我要投稿 点赞

目 录

1. 程序设计内容概论··········································1 1.1程序设计的目的·········································1 1.2程序设计的任务·········································1 2 设计思想··················································1 2.1需求分析···············································1 2.2总体设计···············································1 2.2.1面板布局 ·········································1 2.2.2实现绘画图形······································2 2.2.3填充功能··········································2 2.2.4画笔的粗细及画笔的颜色变更························2 2.2.5实现鼠标单击和鼠标拖拽进行绘图····················2 2.3编程环境···············································3 2.4.工具说明··············································3 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都添加进去,从而达到在描绘图形时多选一的选择功能;利用按钮监听器,利用Object source=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,\语句,从而把初始的画笔颜色(黑色)改变。

2.2.5实现鼠标单击和鼠标拖拽进行绘图 通过语句right.addMouseListener和语句

addMouseMotionListener(new listen1())来设计在right面板上进行鼠标单击和鼠标拖拽等绘图,通过鼠标的单击(mousePressed)获取图形的第一个点,再利用鼠标的拖拽(mouseDragged)选择图形的形状,大小和方向等。 2.3编程环境

本次编程的环境为JDK。

2.4.工具说明

本次编程工具为UltraEdit。

3 系统流程 曲线 按钮 直线按钮 f=2 画圆按钮 f=3 矩形按钮 f=4 开始 粗线按钮 f=5 填充 颜色 清除 画笔粗细 f=1 填充 Y N 改变颜色 fill=true fill=false size 改变 Y N 色 输入颜 f=1 f=2 f=3 f=4 f=5 画出 曲线 画出直线 画出圆 画出矩形 画出粗线 画板 结束

推荐-一个利用GUI方法实现简单绘图功能的应用程序 精

目录1.程序设计内容概论··········································11.1程序设计的目的·········································11.2程序设计的任务·········································12设计思想········
推荐度:
点击下载文档文档为doc格式
4n5ce6ppba17c19373fh7l7tx29yiq00g1n
领取福利

微信扫码领取福利

微信扫码分享