设计一个画图程序,能够实现画图工具、画直线、画箭头、画椭圆、画多边形的功能,并且在绘图。过程中能够修改该画笔的大小以及颜色。该画图程序还需具有橡皮擦功能以及清空整个画面的功能
5
f32要实现的功能
1、这个画图程序,最基本的功能是,作为一个画图工具利用它实现在屏幕上任意绘画、书写的功能;2、利用这个画图程序,通过选择画直线、画箭头、画多边形、画矩形、椭圆、圆形等功能选项并且在屏幕上拖动鼠标操作能实现画出相应图形的功能;3、这个画图程序,还需具备橡皮擦的功能,利用这个橡皮擦能够擦除屏幕上的图案,并且此橡皮擦也应该能够改变大小;4、这个画图程序,还应该做到能够改变画笔颜色的功能;5、这个画图程序,还应该具备能够清除整个屏幕已绘制图画的功能。
4概要设计概要设计
41设计准备
1、此程序为实现这些功能模块,必须首先定义一个工具面板,将这些画笔、画箭头、椭圆、圆、多边形直线、画矩形、画笔颜色、画笔大小、橡皮等功能组件放入这个工具面板中。2、此程序为实现利用鼠标做画笔的功能,必会产生鼠标事件MouseEve
t。因此,为实现鼠标画图的功能,必须用到鼠标触发事件,故在此程序中,必须实现“委托事件模型”,用到事件源、事件对象以及监听者对象。3、此程序中,必须用到的包如下:
importjavaawtimportjavaxswi
gimportjavaawteve
t
42需用到的类用到的
1)classMyca
vas此类用于定义一组数据成员,并且使用构造函数将他们分别初使化,以方便在下面的程序中使用他们。2)classMyframeclass此类用于实现这个程序的大部分功能,在这个类中除了定义一些基本变量以
6
f及构造函数外,还定义了很多成员方法,这些成员方法将实现鼠标触发事件的一系列绘图功能。3)publicclassText这个类是主类,是程序得以运行的入口。在这个主类中定义了主方法,是该程序执行的入口。
5详细设计详细设计
51类的设计
1classMyca
vas在这个类中定义了用于截断的一系列标志变量,有初始坐标、颜色、工具选择等,并且在这个类中还定义了构造函数voidsetx1i
tx1,用于完成对这些变量的初始化工作。2classMyframe这个类用来实现整个程序的大部分功能,并且在这个类中定义了大部分的成员函数和成员方法,在这个类中用到的主要成员方法如下:
publicvoidactio
PerformedActio
Eve
tepublicvoiditemStateCha
gedItemEve
tepublicvoidmousePressedMouseEve
tepublicvoidmouseRelesedMouseEve
tepublicvoidmouseE
teredMouseEve
tepublicvoidmouseExitedMouseEve
tepublicvoidmour