java设计模式实验报告_第1页
java设计模式实验报告_第2页
java设计模式实验报告_第3页
java设计模式实验报告_第4页
java设计模式实验报告_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

设计模式实验报告学院:学院专业:班姓名:学号:指导教师:实例实例:简单工厂模式使用简单工厂模式设计一个可以创建不同几何形状(圆形、方形和三角形等)的绘图工具,每个几何图形都要有绘制draw()和擦除erase()两个方法,要求在绘制不支持的几何图形时,提示一个Unsupportedshapeexception.要求真正做出来,不要使用system.out.println。1.UML图:<<interface>><<interface>>graph+draw(Graphics):void+erase(Graphics):voidcircle+draw(Graphics):void+erase(Graphics):voidtriangle+draw(Graphics):void+erase(Graphics):voidrectangle+draw(Graphic):void+erase(Graphics):voidgeometryfctoryrenshow(String):staticgraph2.源代码graph.javapackagesimplefactory2;importjava.awt.Graphics;publicinterfacegraph{voiddraw(Graphicsg);voiderase(Graphicsg);}circle.javapackagesimplefactory2;importjava.awt.Graphics;publicclasscircleimplementsgraph{@Overridepublicvoiddraw(Graphicsg){g.drawOval(20,60,60,60);}@Overridepublicvoiderase(Graphicsg){g.clearRect(18,55,63,68);}}rectangle.javapackagesimplefactory2;importjava.awt.Graphics;publicclassrectangleimplementsgraph{@Overridepublicvoiddraw(Graphicsg){g.drawRect(160,60,60,60);}@Overridepublicvoiderase(Graphicsg){g.clearRect(159,58,66,66);}}triangle.javapackagesimplefactory2;importjava.awt.Graphics;publicclasstriangleimplementsgraph{@Overridepublicvoiddraw(Graphicsg){int[]xPoints={80,120,150};int[]yPoints={70,120,70};intnPoints=3;g.drawPolygon(xPoints,yPoints,nPoints);}@Overridepublicvoiderase(Graphicsg){g.clearRect(81,70,70,60);}}geometryfctory.javapackagesimplefactory2;publicclassgeometryfctory{staticgraphrenshow(Stringtype)throwsException{if("circle".equals(type)){returnnewcircle();}elseif("triangle".equals(type)){returnnewtriangle();}elseif("rectangle".equals(type)){returnnewrectangle();}else{thrownewException("Unsupportedshapeexception");}}}NewJFrame.javapackagesimplefactory2;importjava.util.logging.Level;importjava.util.logging.Logger;publicclassNewJFrameextendsjavax.swing.JFrame{publicNewJFrame(){initComponents();}@SuppressWarnings("unchecked")//<editor-folddefaultstate="collapsed"desc="GeneratedCode">privatevoidinitComponents(){jButton1=newjavax.swing.JButton();jButton2=newjavax.swing.JButton();jButton3=newjavax.swing.JButton();jButton4=newjavax.swing.JButton();jButton5=newjavax.swing.JButton();jButton6=newjavax.swing.JButton();jButton7=newjavax.swing.JButton();jTextField1=newjavax.swing.JTextField();jTextField2=newjavax.swing.JTextField();setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);jButton1.setText("circle");jButton1.addMouseListener(newjava.awt.event.MouseAdapter(){publicvoidmouseClicked(java.awt.event.MouseEventevt){jButton1MouseClicked(evt);}});jButton1.addActionListener(newjava.awt.event.ActionListener(){publicvoidactionPerformed(java.awt.event.ActionEventevt){jButton1ActionPerformed(evt);}});jButton2.setText("triangle");jButton2.addActionListener(newjava.awt.event.ActionListener(){publicvoidactionPerformed(java.awt.event.ActionEventevt){jButton2ActionPerformed(evt);}});jButton3.setText("rectangle");jButton3.addActionListener(newjava.awt.event.ActionListener(){publicvoidactionPerformed(java.awt.event.ActionEventevt){jButton3ActionPerformed(evt);}});jButton4.setText("其他");jButton4.addActionListener(newjava.awt.event.ActionListener(){publicvoidactionPerformed(java.awt.event.ActionEventevt){jButton4ActionPerformed(evt);}});jButton5.setText("circle");jButton5.addMouseListener(newjava.awt.event.MouseAdapter(){publicvoidmouseClicked(java.awt.event.MouseEventevt){jButton5MouseClicked(evt);}});jButton5.addActionListener(newjava.awt.event.ActionListener(){publicvoidactionPerformed(java.awt.event.ActionEventevt){jButton5ActionPerformed(evt);}});jButton6.setText("triangle");jButton6.addActionListener(newjava.awt.event.ActionListener(){publicvoidactionPerformed(java.awt.event.ActionEventevt){jButton6ActionPerformed(evt);}});jButton7.setText("rectangle");jButton7.addActionListener(newjava.awt.event.ActionListener(){publicvoidactionPerformed(java.awt.event.ActionEventevt){jButton7ActionPerformed(evt);}});jTextField1.setText("画图");jTextField2.setText("檫除");javax.swing.GroupLayoutlayout=newjavax.swing.GroupLayout(getContentPane());getContentPane().setLayout(layout);layout.setHorizontalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(layout.createSequentialGroup().addContainerGap().addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(layout.createSequentialGroup().addComponent(jButton1).addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED).addComponent(jButton2).addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED).addComponent(jButton3).addGap(18,18,18).addComponent(jButton4)).addGroup(layout.createSequentialGroup().addComponent(jButton5).addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED).addComponent(jButton6).addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED).addComponent(jButton7))).addGap(18,18,18).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING,false).addComponent(jTextField2,javax.swing.GroupLayout.DEFAULT_SIZE,40,Short.MAX_VALUE).addComponent(jTextField1)).addGap(0,20,Short.MAX_VALUE)));layout.setVerticalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(javax.swing.GroupLayout.Alignment.TRAILING,layout.createSequentialGroup().addContainerGap(173,Short.MAX_VALUE).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE).addComponent(jButton1).addComponent(jButton2).addComponent(jButton3).addComponent(jButton4).addComponent(jTextField1,javax.swing.GroupLayout.PREFERRED_SIZE,javax.swing.GroupLayout.DEFAULT_SIZE,javax.swing.GroupLayout.PREFERRED_SIZE)).addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE).addComponent(jButton5).addComponent(jButton6).addComponent(jButton7).addComponent(jTextField2,javax.swing.GroupLayout.PREFERRED_SIZE,javax.swing.GroupLayout.DEFAULT_SIZE,javax.swing.GroupLayout.PREFERRED_SIZE)).addGap(75,75,75)));pack();}privatevoidjButton1ActionPerformed(java.awt.event.ActionEventevt){graphx=null;try{x=geometryfctory.renshow("circle");}catch(Exceptionex){Logger.getLogger(NewJFrame.class.getName()).log(Level.SEVERE,null,ex);}x.draw(this.getGraphics());}privatevoidjButton2ActionPerformed(java.awt.event.ActionEventevt){graphz=null;try{y=geometryfctory.renshow("triangle");}catch(Exceptionex){Logger.getLogger(NewJFrame.class.getName()).log(Level.SEVERE,null,ex);}y.draw(this.getGraphics());}privatevoidjButton3ActionPerformed(java.awt.event.ActionEventevt){try{z=geometryfctory.renshow("rectangle");}catch(Exceptionex){Logger.getLogger(NewJFrame.class.getName()).log(Level.SEVERE,null,ex);}z.draw(this.getGraphics());}privatevoidjButton4ActionPerformed(java.awt.event.ActionEventevt){graphz=null;try{z=geometryfctory.renshow("aa");}catch(Exceptionex){Logger.getLogger(NewJFrame.class.getName()).log(Level.SEVERE,null,ex);}z.draw(this.getGraphics());}privatevoidjButton5MouseClicked(java.awt.event.MouseEventevt){graphx=null;try{x=geometryfctory.renshow("circle");}catch(Exceptionex){Logger.getLogger(NewJFrame.class.getName()).log(Level.SEVERE,null,ex);}x.erase(this.getGraphics());}privatevoidjButton6ActionPerformed(java.awt.event.ActionEventevt){graphy=null;try{y=geometryfctory.renshow("triangle");}catch(Exceptionex){Logger.getLogger(NewJFrame.class.getName()).log(Level.SEVERE,null,ex);}y.erase(this.getGraphics());}privatevoidjButton7ActionPerformed(java.awt.event.ActionEventevt){graphz=null;try{z=geometryfctory.renshow("rectangle");}catch(Exceptionex){Logger.getLogger(NewJFrame.class.getName()).log(Level.SEVERE,null,ex);}z.erase(this.getGraphics());}publicstaticvoidmain(Stringargs[]){java.awt.EventQueue.invokeLater(newRunnable(){publicvoidrun(){newNewJFrame().s

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论