实验一 设计模式综合应用(一)附源码+uml图

实验一 设计模式综合应用(一)附源码+uml图

ID:14280235

大小:182.00 KB

页数:15页

时间:2018-07-27

实验一 设计模式综合应用(一)附源码+uml图_第1页
实验一 设计模式综合应用(一)附源码+uml图_第2页
实验一 设计模式综合应用(一)附源码+uml图_第3页
实验一 设计模式综合应用(一)附源码+uml图_第4页
实验一 设计模式综合应用(一)附源码+uml图_第5页
资源描述:

《实验一 设计模式综合应用(一)附源码+uml图》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、注:班里的可以向我要工程文件实验一设计模式综合应用(一)一、实验目的:熟练掌握Java设计模式中的命令模式和观察者模式,并培养学生将两者综合应用到具体软件项目中的能力。二、实验内容:制作如图1所示GUI界面,需求如下:1.鼠标左键点击界面时,在鼠标所在位置填充一个直径为20像素的圆,并在界面上方的标签上显示“新增圆点位于:(x,y)”;2.鼠标右键点击时,则实现undo操作,将最后填充的圆点从界面中删除,并在界面上方的标签上显示“删除圆点位于:(x,y)”;3.界面下方的标签随时显示“鼠标位于:(x,y)”;图1GUI界面三、实验要

2、求:1.绘制和撤销圆点使用命令模式;2.两个标签内容的变更使用观察者模式;3.在代码实现之前,进行UML类图设计;4.根据UML类图,在eclipse中编程实现程序的功能。四、实验学时:2+2学时(课外2个学时)五、提示:1.设计一个Circle类,该类对象用来记录某个填充圆的信息;2.每填充一个圆点,就实例化一个Circle类对象,并将其放置到具体命令对象关联的List对象中,用来作为undo操作的依据;3.填充圆可以使用Graphics的fillOval方法;4.删除圆可以先将Graphics对象的颜色设置为画布的背景色,再使用

3、Graphics的fillRect方法;5.标签显示内容的需求不用观察者模式就可以轻松实现,但要求使用观察者模式进行设计;5.实验完成后,将UML文件和程序的工程文件打包,命名为“实验一.rar”,并上传至ftp://10.10.3.72。六UML图七源代码1.packagelsu.egg.sy1;publicclassCircle{privateintx;privateinty;Circle(intx,inty){this.x=x;this.y=y;}publicintgetX(){returnx;}publicvoidsetX(

4、intx){this.x=x;}publicintgetY(){returny;}publicvoidsetY(inty){this.y=y;}}2.packagelsu.egg.sy1;importjavax.swing.JPanel;publicinterfaceCommand{publicvoidexcute(JPaneljpanel,Circlecircle);publicvoidundo(JPaneljpanel);}3.packagelsu.egg.sy1;importjava.util.ArrayList;import

5、javax.swing.JPanel;publicclassConcreteCommandimplementsCommand{privateReceiverreceiver;privateArrayListarraylist;privateConcreteOfInvokerconcreteofinvoker;ConcreteCommand(Receiverreceiver,ConcreteOfInvokerconcreteofinvoker){this.receiver=receiver;this.arraylist

6、=newArrayList();this.concreteofinvoker=concreteofinvoker;}@Overridepublicvoidexcute(JPaneljpanel,Circlecircle){receiver.addSpot(jpanel,circle);arraylist.add(circle);}@Overridepublicvoidundo(JPaneljpanel){Circlecircle;if(arraylist.size()>=1){circle=arraylist.get

7、(arraylist.size()-1);receiver.deleteSpotr(jpanel,circle);arraylist.remove(arraylist.size()-1);intn=2;concreteofinvoker.notifyObservers(n,circle.getX(),circle.getY());}}}4.packagelsu.egg.sy1;importjavax.swing.JLabel;@SuppressWarnings("serial")publicclassConcreteObserver

8、1extendsJLabelimplementsObserver{ConcreteObserver1(){super("新增圆点位于:(0,0)");}@Overridepublicvoidupdate(intn,intx,inty)

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。