軟件工程課程設(shè)計3_第1頁
軟件工程課程設(shè)計3_第2頁
軟件工程課程設(shè)計3_第3頁
軟件工程課程設(shè)計3_第4頁
軟件工程課程設(shè)計3_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

南京信息工程大學實驗(實習)報告實驗(實習)名稱詳細設(shè)計實驗(實習)日期2013.11.22得分指導教師李振宏一、實驗目的1.通過windows畫圖板進行詳細設(shè)計,掌握算法的設(shè)計方法與算法的描述;2.掌握常用算法描述工具的使用;3.完成一個windows畫圖板的算法設(shè)計。二、實驗準備熟悉算法描述工具的使用三、實驗要求完成windows繪圖板的詳細設(shè)計,提交實驗報告開發(fā)一個功能完善的Windows繪圖板程序,功能包括:新建空白文檔、文件保存、繪制一些基本的圖形組件(直線、矩形、實心矩形、橢圓、實心橢圓、圓、實心圓、圓角矩形、實心圓角矩形等)、橡皮擦、添加文字等實驗內(nèi)容:1:背景根據(jù)實際情況,我們使用原型法即以少量代價快速地構(gòu)造一個可執(zhí)行的軟件系統(tǒng)模型。使用戶和開發(fā)人員可以較快地確定需求,然后采用循環(huán)進化的開發(fā)方式,對系統(tǒng)模型作連續(xù)的改進,將系統(tǒng)需具備的性能逐漸增加上去,直到所有的性能全部滿足。直到所有的性能全部滿足??傮w規(guī)劃主要實現(xiàn)想法和作編寫代碼的工作。開始2:界面組織結(jié)構(gòu)開始初始化繪圖區(qū)域初始化繪圖區(qū)域打開已有文件打開已有文件新建或默認文件新建或默認文件繪制修改圖片繪制修改圖片保存圖片文件新建文件保存圖片文件新建文件退出程序退出程序結(jié)束結(jié)束Windows繪圖板Windows繪圖板函數(shù)畫圖一般畫圖菜單欄工具欄畫圖區(qū)畫圖板主界面函數(shù)畫圖一般畫圖菜單欄工具欄畫圖區(qū)畫圖板主界面3:界面設(shè)計說明要求其實都知道java并不是做Windows畫圖板的最好的語言,但是因為我們并沒有學過VB,所以只能用JAVA來編寫windows繪圖板這個軟件,Java并沒有VB那么大量的控件,所以我們必須要用JAVA的語言來實現(xiàn)運用了JAVA中類的繼承特性實現(xiàn)了對父類方法的調(diào)用,并多次使用CASE語句實現(xiàn)繪圖菜單的選擇,運用了適配器類簡化了監(jiān)聽器類的重寫工作。4:界面代碼程序importjava.awt.BorderLayout;importjava.awt.Choice;importjava.awt.Color;importjava.awt.Desktop.Action;importjava.awt.FileDialog;importjava.awt.Graphics;importjava.awt.GridLayout;importjava.awt.Polygon;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.awt.event.ItemEvent;importjava.awt.event.ItemListener;importjava.awt.event.KeyEvent;importjava.awt.event.MouseAdapter;importjava.awt.event.MouseEvent;importjava.awt.event.MouseMotionAdapter;importjava.awt.event.WindowAdapter;importjava.awt.event.WindowEvent;importjava.io.File;importjava.io.FileInputStream;importjava.io.FileOutputStream;importjava.io.IOException;importjava.io.ObjectInputStream;importjava.io.ObjectOutputStream;importjava.io.Serializable;importjava.util.Vector;importjavax.swing.AbstractAction;importjavax.swing.Icon;importjavax.swing.ImageIcon;importjavax.swing.JButton;importjavax.swing.JColorChooser;importjavax.swing.JFrame;importjavax.swing.JLabel;importjavax.swing.JMenu;importjavax.swing.JMenuBar;importjavax.swing.JMenuItem;importjavax.swing.JOptionPane;importjavax.swing.JPanel;importjavax.swing.JTextField;importjavax.swing.JToolBar;importjavax.swing.KeyStroke;classPointimplementsSerializable{intx,y;Colorcol;inttool;intguangdu;Point(intx,inty,Colorcol,intguangdu){this.x=x;this.y=y;this.col=col;this.guangdu=guangdu;}publicvoidmove(intx,inty,Colorcol,intguangdu){ this.x=x; this.y=y; this.col=col; this.guangdu=guangdu;}}publicclassMainLei{ publicstatichuatuquhuatu=newhuatuqu(); publicstaticvoidmain(String[]args){ caidanleiframe=newcaidanlei(); frame.getContentPane().setLayout(newBorderLayout()); frame.getContentPane().add(huatu,BorderLayout.CENTER); frame.setSize(700,600); frame.setTitle("huatuban"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); }staticJButtonyanseRed,yanseBlack,yanseBule,yanseDarkGray,yanseGray,yansePink, yanseGreen,yanseLightGray,yanseMagenta,yanseOrange,yanseYellow,yanseCyan; staticColorcc; staticStringtext1String;staticinttext1Int=-1;staticStringtext2String;staticinttext2Int=-1;staticStringtext3String;staticinttext3Int=-1;staticStringtext4String;staticinttext4Int=-1;staticStringtext5String;staticinttext5Int=-1;staticStringtext6String;staticinttext6Int=-1;staticStringtext7String;staticinttext7Int=-1;staticStringtext8String;staticinttext8Int=-1;staticJButtonjbo1;staticJButtonjbo2;staticJButtonjbo3;staticJButtonjbo4;staticJTextFieldtext1;staticJTextFieldtext2;staticJTextFieldtext3;staticJTextFieldtext4;staticJTextFieldtext5;staticJTextFieldtext6;staticJTextFieldtext7;staticJTextFieldtext8; //菜單項 staticclasscaidanleiextendsJFrameimplementsActionListener{privateJMenuItemjmxinjian,jmbaocun,jmbianji,jmdakai,jmiClose,jmbangzhu,jmpaowuxian,jmzhixian,jmshuangqu,jmtuoyuan;huatuquhutu=newhuatuqu();FileDialogopenPicture,savePicture;VectorpaintInfo=null;//點信息向量組intn=1;JFrameframe1;JFrameframe2;JFrameframe3;JFrameframe4;FileInputStreampicIn=null;FileOutputStreampicOut=null;ObjectInputStreamVIn=null;ObjectOutputStreamVOut=null;publiccaidanlei(){ JMenuBarjm=newJMenuBar(); setJMenuBar(jm); JMenufileJmenu=newJMenu("文件",false); JMenuyeseJmenu=newJMenu("顏色",true); JMenushengchengMenu=newJMenu("生成"); JMenubangzhumenu=newJMenu("幫助",false); jm.add(fileJmenu); jm.add(yeseJmenu); jm.add(shengchengMenu); jm.add(bangzhumenu); fileJmenu.add(jmxinjian=newJMenuItem("新建")); fileJmenu.add(jmdakai=newJMenuItem("打開")); fileJmenu.add(jmbaocun=newJMenuItem("保存")); fileJmenu.addSeparator(); fileJmenu.add(jmiClose=newJMenuItem("退出")); fileJmenu.addSeparator(); yeseJmenu.add(jmbianji=newJMenuItem("編輯顏色")); shengchengMenu.add(jmpaowuxian=newJMenuItem("畫拋物線")); shengchengMenu.add(jmzhixian=newJMenuItem("畫直線")); shengchengMenu.add(jmshuangqu=newJMenuItem("畫雙曲線")); shengchengMenu.add(jmtuoyuan=newJMenuItem("畫橢圓")); bangzhumenu.add(jmbangzhu=newJMenuItem("幫助主題")); jmxinjian.addActionListener(this); jmbaocun.addActionListener(this); jmdakai.addActionListener(this); jmiClose.addActionListener(this); jmbianji.addActionListener(this); jmpaowuxian.addActionListener(this); jmzhixian.addActionListener(this); jmshuangqu.addActionListener(this); jmbangzhu.addActionListener(this); jmtuoyuan.addActionListener(this); openPicture=newFileDialog(this,"打開圖畫",FileDialog.LOAD);openPicture.setVisible(false);savePicture=newFileDialog(this,"保存圖畫",FileDialog.SAVE);savePicture.setVisible(false);openPicture.addWindowListener(newWindowAdapter(){publicvoidwindowClosing(WindowEvente){openPicture.setVisible(false);}});savePicture.addWindowListener(newWindowAdapter(){publicvoidwindowClosing(WindowEvente){savePicture.setVisible(false);}});addWindowListener(newWindowAdapter(){publicvoidwindowClosing(WindowEvente){System.exit(0);}}); } publicvoidactionPerformed(ActionEvente){ StringactionCommand=e.getActionCommand();if(e.getSource()instanceofJMenuItem){if("新建".equals(actionCommand)){huatu.setForeground(Color.white);JOptionPane.showMessageDialog(null,"是否保存此界面");}elseif("打開".equals(actionCommand)){openPicture.setVisible(true);if(openPicture.getFile()!=null){try{paintInfo.removeAllElements();Filefilein=newFile(openPicture.getDirectory(),openPicture.getFile());picIn=newFileInputStream(filein);VIn=newObjectInputStream(picIn);paintInfo=(Vector)VIn.readObject();VIn.close();repaint();}catch(ClassNotFoundExceptionIOe2){repaint();System.out.println("cannotreadobject");}catch(IOExceptionIOe){repaint();System.out.println("cannotreadfile");}}}elseif("保存".equals(actionCommand)){savePicture.setVisible(true);try{Filefileout=newFile(savePicture.getDirectory(),savePicture.getFile());picOut=newFileOutputStream(fileout);VOut=newObjectOutputStream(picOut);VOut.writeObject(paintInfo);VOut.close();}catch(IOExceptionIOe){System.out.println("cannotwriteobject");}}elseif("編輯顏色".equals(actionCommand))cc=JColorChooser.showDialog(caidanlei.this,"pleaseacolor",cc);elseif("幫助主題".equals(actionCommand))JOptionPane.showMessageDialog(null,"先鋒小組制作");elseif("畫拋物線".equals(actionCommand)){ jbo1=newJButton("確定"); JPanelpanel=newJPanel(); JLabeljlbl1=newJLabel("畫拋物線如:y=ax^2+b"); panel.add(jlbl1); JPanelpane2=newJPanel(); pane2.setLayout(newGridLayout(2,2)); JLabeljlbl2=newJLabel("a="); text1=newJTextField(); JLabeljlbl3=newJLabel("b=");text2=newJTextField(); pane2.add(jlbl2); pane2.add(text1); pane2.add(jlbl3); pane2.add(text2);frame1=newJFrame(); frame1.setTitle("畫拋物線"); frame1.getContentPane().setLayout(newBorderLayout()); frame1.getContentPane().add(panel,BorderLayout.NORTH); frame1.getContentPane().add(pane2,BorderLayout.CENTER); frame1.getContentPane().add(jbo1,BorderLayout.SOUTH); frame1.setSize(250,175); frame1.setVisible(true); jbo1.addActionListener(newActionListener(){ publicvoidactionPerformed(ActionEvente){ text1String=text1.getText();text2String=text2.getText();text1Int=Integer.parseInt(text1String);text2Int=Integer.parseInt(text2String);frame1.setVisible(false); }}); }elseif("畫直線".equals(actionCommand)){ JPanelpanel=newJPanel(); jbo2=newJButton("確定"); JLabeljlbl1=newJLabel("畫直線如:y=ax+b"); panel.add(jlbl1); JPanelpane2=newJPanel(); pane2.setLayout(newGridLayout(2,2)); JLabeljlbl2=newJLabel("a="); text3=newJTextField(); JLabeljlbl3=newJLabel("b=");text4=newJTextField(); pane2.add(jlbl2); pane2.add(text3); pane2.add(jlbl3); pane2.add(text4);frame2=newJFrame(); frame2.setTitle("畫直線"); frame2.getContentPane().setLayout(newBorderLayout()); frame2.getContentPane().add(panel,BorderLayout.NORTH); frame2.getContentPane().add(pane2,BorderLayout.CENTER); frame2.getContentPane().add(jbo2,BorderLayout.SOUTH); frame2.setSize(250,175); frame2.setVisible(true); jbo2.addActionListener(newActionListener(){ publicvoidactionPerformed(ActionEvente){ text3String=text3.getText();text4String=text4.getText();text3Int=Integer.parseInt(text3String);text4Int=Integer.parseInt(text4String);frame2.setVisible(false); }});}if("畫雙曲線".equals(actionCommand)){ jbo3=newJButton("確定"); JPanelpanel=newJPanel(); JLabeljlbl1=newJLabel("畫雙曲線如:x^2/a^2-x^2/b^2=1"); panel.add(jlbl1); JPanelpane2=newJPanel(); pane2.setLayout(newGridLayout(2,2)); JLabeljlbl2=newJLabel("a="); text5=newJTextField(); JLabeljlbl3=newJLabel("b=");text6=newJTextField(); pane2.add(jlbl2); pane2.add(text5); pane2.add(jlbl3); pane2.add(text6); frame3=newJFrame(); frame3.setTitle("畫雙曲線"); frame3.getContentPane().setLayout(newBorderLayout()); frame3.getContentPane().add(panel,BorderLayout.NORTH); frame3.getContentPane().add(pane2,BorderLayout.CENTER); frame3.getContentPane().add(jbo3,BorderLayout.SOUTH); frame3.setSize(250,175); frame3.setVisible(true); jbo3.addActionListener(newActionListener(){ publicvoidactionPerformed(ActionEvente){ text5String=text5.getText();text6String=text6.getText();text5Int=Integer.parseInt(text5String);text6Int=Integer.parseInt(text6String);frame3.setVisible(false); }});}if("畫橢圓".equals(actionCommand)){ jbo4=newJButton("確定"); JPanelpanel=newJPanel(); JLabeljlbl1=newJLabel("畫橢圓如:x^2/a^+y^2/b^=1"); panel.add(jlbl1); JPanelpane2=newJPanel(); pane2.setLayout(newGridLayout(2,2)); JLabeljlbl2=newJLabel("a="); text7=newJTextField(); JLabeljlbl3=newJLabel("b=");text8=newJTextField(); pane2.add(jlbl2); pane2.add(text7); pane2.add(jlbl3); pane2.add(text8); frame4=newJFrame(); frame4.setTitle("畫橢圓"); frame4.getContentPane().setLayout(newBorderLayout()); frame4.getContentPane().add(panel,BorderLayout.NORTH); frame4.getContentPane().add(pane2,BorderLayout.CENTER); frame4.getContentPane().add(jbo4,BorderLayout.SOUTH); frame4.setSize(250,175); frame4.setVisible(true); jbo4.addActionListener(newActionListener(){ publicvoidactionPerformed(ActionEvente){ text7String=text7.getText();text8String=text8.getText();text7Int=Integer.parseInt(text7String);text8Int=Integer.parseInt(text8String);frame4.setVisible(false); }});}elseif("退出".equals(actionCommand))System.exit(0);} }}//畫圖類staticclasshuatuquextendsJPanelimplementsItemListener{booleandianFirst=true;Stringname3;Stringname1;Stringname2;Choicejcb1;Choicejcb2;Choicejcb3;booleanxiangpiFirst=true;booleanqianbiFirst=true;booleanjuxingFirst=true;booleantuoyuanFirst=true;booleanyuanjiaoFirst=true;Stringmsr;StringtheButton;booleanisFirst=true;privateGraphicsg;privatePointlineStart=newPoint(0,0,Color.red,50);ImageIconjbtxiangpi=newImageIcon("ico/x.gif");ImageIconjbtqianbi=newImageIcon("ico/q.gif");ImageIconjbPrint=newImageIcon("ico/s.gif");ImageIconjbxiguan=newImageIcon("ico/di.jpg");ImageIconjbziti=newImageIcon("ico/zt.gif");ImageIconjbzhixian=newImageIcon("ico/z.gif");ImageIconjbtuoyuan=newImageIcon("ico/t.gif");ImageIconjbjuxing=newImageIcon("ico/ju.gif");ImageIconjbduopianxing=newImageIcon("ico/d.gif");ImageIconjbyuanjiaojuxing=newImageIcon("ico/yu.gif");ImageIconredicon=newImageIcon("ico/red.jpg");ImageIconblackicon=newImageIcon("ico/black.jpg");ImageIconbuleicon=newImageIcon("ico/bule.jpg");ImageIconcyanicon=newImageIcon("ico/cyae.jpg");ImageIcondrakgrayicon=newImageIcon("ico/drakgray.jpg");ImageIcongrayicon=newImageIcon("ico/gray.jpg");ImageIcongreenicon=newImageIcon("ico/green.jpg");ImageIconlightgrayicon=newImageIcon("ico/lightgray.jpg");ImageIconmagentaicon=newImageIcon("ico/megenta.jpg");ImageIconorangeicon=newImageIcon("ico/orga.jpg");ImageIconpinkicon=newImageIcon("ico/pink.jpg");ImageIconyellowicon=newImageIcon("ico/yellow.jpg"); publichuatuqu() { this.setLayout(newBorderLayout()); this.setBackground(Color.white); MyActionxiangpiAction=newMyAction("xiangpi",jbtxiangpi,"橡皮",newInteger(KeyEvent.VK_L),KeyStroke.getKeyStroke(KeyEvent.VK_L,ActionEvent.CTRL_MASK));MyActionqianbiAction=newMyAction("qianbi",jbtqianbi,"鉛筆",newInteger(KeyEvent.VK_C),KeyStroke.getKeyStroke(KeyEvent.VK_C,ActionEvent.CTRL_MASK));MyActionPrintAction=newMyAction("Print",jbPrint,"涮子",newInteger(KeyEvent.VK_R),KeyStroke.getKeyStroke(KeyEvent.VK_R,ActionEvent.CTRL_MASK));MyActionxiguanAction=newMyAction("xiguan",jbxiguan,"吸管",newInteger(KeyEvent.VK_A),KeyStroke.getKeyStroke(KeyEvent.VK_A,ActionEvent.CTRL_MASK));MyActionzitiAction=newMyAction("ziti",jbziti,"字體",newInteger(KeyEvent.VK_Z),KeyStroke.getKeyStroke(KeyEvent.VK_Z,ActionEvent.CTRL_MASK));MyActionzhixianAction=newMyAction("zhixian",jbzhixian,"直線",newInteger(KeyEvent.VK_W),KeyStroke.getKeyStroke(KeyEvent.VK_W,ActionEvent.CTRL_MASK));MyActiontuoyuanAction=newMyAction("tuoyuan",jbtuoyuan,"橢圓",newInteger(KeyEvent.VK_T),KeyStroke.getKeyStroke(KeyEvent.VK_T,ActionEvent.CTRL_MASK));MyActionjuxingAction=newMyAction("juxing",jbjuxing,"矩形",newInteger(KeyEvent.VK_J),KeyStroke.getKeyStroke(KeyEvent.VK_J,ActionEvent.CTRL_MASK));MyActionduopianxingAction=newMyAction("duopianxing",jbduopianxing,"多邊形",newInteger(KeyEvent.VK_D),KeyStroke.getKeyStroke(KeyEvent.VK_D,ActionEvent.CTRL_MASK));MyActionyuanjiaojuxingAction=newMyAction("yuanjiaojuxing",jbyuanjiaojuxing,"圓角矩形",newInteger(KeyEvent.VK_Y),KeyStroke.getKeyStroke(KeyEvent.VK_Y,ActionEvent.CTRL_MASK));jcb1=newChoice();jcb1.add("1");jcb1.add("2");jcb1.add("3");jcb1.add("4");jcb1.add("5");jcb2=newChoice();jcb2.add("1");jcb2.add("2");jcb2.add("3");jcb2.add("4");jcb2.add("5");jcb3=newChoice();jcb3.add("不填充");jcb3.add("填充");JLabeljTable3=newJLabel("是否填充");JLabeljTable1=newJLabel("畫筆大小");JLabeljTable2=newJLabel("橡皮大小");jcb1.addItemListener(this);jcb2.addItemListener(this);jcb3.addItemListener(this);JPanelpanel=newJPanel();panel.setLayout(newGridLayout(3,2));panel.add(jTable3);panel.add(jcb3);panel.add(jTable2);panel.add(jcb1);panel.add(jTable1);panel.add(jcb2);add(panel,BorderLayout.SOUTH);JToolBarjToolBar1=newJToolBar(JToolBar.VERTICAL);//工具欄jToolBar1.setLayout(newGridLayout(8,2));jToolBar1.add(xiangpiAction);jToolBar1.add(qianbiAction);jToolBar1.add(PrintAction);jToolBar1.add(xiguanAction);jToolBar1.add(zitiAction);jToolBar1.add(zhixianAction);jToolBar1.add(tuoyuanAction);jToolBar1.add(juxingAction);jToolBar1.add(duopianxingAction);jToolBar1.add(yuanjiaojuxingAction);add(jToolBar1,BorderLayout.WEST);////////////////////////////////////////////////////////////////////////////////yanseRed=newJButton("Red",redicon);yanseBlack=newJButton("Black",blackicon);yanseBule=newJButton("Bule",buleicon);yanseCyan=newJButton("Cyan",cyanicon);yanseDarkGray=newJButton("DarkGray",drakgrayicon);yanseGray=newJButton("Gray",grayicon);yanseGreen=newJButton("Green",greenicon);yanseLightGray=newJButton("lightGray",lightgrayicon);yanseMagenta=newJButton("magenta",magentaicon);yanseOrange=newJButton("orange",orangeicon);yansePink=newJButton("pink",pinkicon);yanseYellow=newJButton("yellow",yellowicon);SecondListendersecondListender=newSecondListender();yanseRed.addActionListener(secondListender);yanseBlack.addActionListener(secondListender);yanseBule.addActionListener(secondListender);yanseCyan.addActionListener(secondListender);yanseDarkGray.addActionListener(secondListender);yanseGray.addActionListener(secondListender);yanseGreen.addActionListener(secondListender);yanseLightGray.addActionListener(secondListender);yanseMagenta.addActionListener(secondListender);yanseOrange.addActionListener(secondListender);yansePink.addActionListener(secondListender);yanseYellow.addActionListener(secondListender);JToolBarjToolBar2=newJToolBar();jToolBar2.setFloatable(true);jToolBar2.setLayout(newGridLayout(6,2));jToolBar2.add(yanseRed);jToolBar2.add(yanseBlack);jToolBar2.add(yanseBule);jToolBar2.add(yanseCyan);jToolBar2.add(yanseDarkGray);jToolBar2.add(yanseGray);jToolBar2.add(yanseGreen);jToolBar2.add(yanseLightGray);jToolBar2.add(yanseMagenta);jToolBar2.add(yanseOrange);jToolBar2.add(yansePink);jToolBar2.add(yanseYellow);add(jToolBar2,BorderLayout.EAST);/////////////////////////////////////////////////////////////addMouseMotionListener(newMouseMotionAdapter(){publicvoidmouseDragged(MouseEvente){g=getGraphics(); if(theButton.equals("xiangpi"))//橡皮 { g.setColor(getBackground()); if(xiangpiFirst&&name2!="2"){ name2="1"; xiangpiFirst=false; } if(name2=="1") g.fillOval(lineStart.x,lineStart.y,2,2); elseif(name2=="2") g.fillOval(lineStart.x,lineStart.y,5,5); elseif(name2=="3") g.fillOval(lineStart.x,lineStart.y,8,8); elseif(name2=="4") g.fillOval(lineStart.x,lineStart.y,11,11); elseif(name2=="5") g.fillOval(lineStart.x,lineStart.y,14,14); lineStart.move(e.getX(),e.getY(),Color.red,50); } elseif(theButton.equals("qianbi"))//鉛筆 { g.setColor(cc); if(qianbiFirst&&name1!="2"){ name1="1"; qianbiFirst=false; } if(name1=="1") g.drawLine(lineStart.x,lineStart.y,e.getX(),e.getY()); elseif(name1=="2") g.fillOval(lineStart.x,lineStart.y,2,2); elseif(name1=="3") g.fillOval(lineStart.x,lineStart.y,5,5); elseif(name1=="4") g.fillOval(lineStart.x,lineStart.y,8,8); elseif(name1=="5") g.fillOval(lineStart.x,lineStart.y,11,11); lineStart.move(e.getX(),e.getY(),Color.red,50); } elseif(theButton.equals("Print")){//刷子g.setColor(cc);g.fillOval(e.getX()-10,e.getY()-10,20,20); lineStart.move(e.getX(),e.getY(),Color.red,50); } }});addMouseListener(newMouseAdapter(){publicvoidmousePressed(MouseEvente){if(dianFirst){ theButton="qianbi"; dianFirst=false;}if(text1Int!=-1){//畫拋物線 g.setColor(cc); g.drawLine(150,300,690,300); g.drawLine(375,10,375,450); g.drawLine(370,15,375,10); g.drawLine(380,15,375,10); g.drawLine(685,295,690,300); g.drawLine(685,305,690,300); Polygonp=newPolygon(); doublescaleFactor=0.1; for(intx=-100;x<=100;x++){ p.addPoint(x+375,(int)(300-(int)text1Int*(scaleFactor*x*x)-(int)text2Int)); } g.drawPolygon(p.xpoints,p.ypoints,p.npoints); text1Int=-1; }if(text3Int!=-1){//畫直線 g.setColor(cc); g.drawLine(150,300,690,300); g.drawLine(375,10,375,450); g.drawLine(370,15,375,10); g.drawLine(380,15,375,10); g.drawLine(685,295,690,300); g.drawLine(685,305,690,300); Polygonp=newPolygon(); doublescaleFactor=0.1; for(intx=-100;x<=100;x++){ p.addPoint(x+375,(int)(300-(int)text3Int*x-(int)text4Int)); } g.drawPolygon(p.xpoints,p.ypoints,p.npoints);text3Int=-1;}if(text5Int!=-1){//畫雙曲線 g.setColor(cc); g.drawLine(150,300,690,300); g.drawLine(375,10,375,450); g.drawLine(370,15,375,10); g.drawLine(380,15,375,10); g.drawLine(685,295,690,300); g.drawLine(685,305,690,300); Polygonp=newPolygon(); doublescaleFactor=0.1; for(intx=-100;x<=-text5Int*Math.sqrt(10);x++){ p.addPoint(x+375,(int)(300-Math.sqrt((text6Int*text6Int*(scaleFactor*x*x-text5Int*text5Int)/(text5Int*text5Int))))); } g.drawPolyline(p.xpoints,p.ypoints,p.npoints); for(intx=-100;x<=-text5Int*Math.sqrt(10);x++){ p.addPoint(x+375,(int)(300+Math.sqrt((text6Int*text6Int*(scaleFactor*x*x-text5Int*text5Int)/(text5Int*text5Int))))); } g.drawPolyline(p.xpoints,p.ypoints,p.npoints); for(doublex=text5Int*Math.sqrt(10);x<=100;x++){ p.addPoint((int)x+375,(int)(300-Math.sqrt((text6Int*text6Int*(scaleFactor*x*x-text5Int*text5Int)/(text5Int*text5Int))))); } g.drawPolyline(p.xpoints,p.ypoints,p.npoints); for(doublex=text5Int*Math.sqrt(10);x<=100;x++){ p.addPoint((int)x+375,(int)(300+Math.sqrt((text6Int*text6Int*(scaleFactor*x*x-text5Int*text5Int)/(text5Int*text5Int))))); } g.drawPolyline(p.xpoints,p.ypoints,p.npoints);text5Int=-1;}if(text7Int!=-1){//畫橢圓 g.setColor(cc); g.drawLine(150,300,690,300); g.drawLine(375,10,375,450); g.drawLine(370,15,375,10); g.drawLine(380,15,375,10); g.drawLine(685,295,690,300); g.drawLine(685,305,690,300); Polygonp=newPolygon(); doublescaleFactor=0.1; for(intx=-text7Int;x<=text7Int;x++){ p.addPoint((int)x+375,(int)(300-(text8Int/text7Int)*Math.sqrt((text7Int*text7Int-x*x)))); } g.drawPolyline(p.xpoints,p.ypoints,p.npoints); for(intx=-text7Int;x<=text7Int;x++){ p.addPoint((int)x+375,(int)(300+(text8Int/text7Int)*Math.sqrt((text7Int*text7Int-x*x)))); } g.drawPolyline(p.xpoints,p.ypoints,p.npoints);text7Int=-1;}if(theButton.equals("ziti")){g.setColor(cc);g.drawString(msr,e.getX(),e.getY());}//if(theButton.equals("xiguan")){//吸管 //cc=huatu.getForeground();//}if(theButton.equals("zhixian")){//直線 g.setColor(cc); //g.drawLine(lineStart.x,lineStart.y,e.getX(),e.getY()); lineStart.move(e.getX(),e.getY(),Color.red,50); }if(theButton.equals("duopianxing")){//多邊性 g.setColor(cc); g.drawLine(lineStart.x,lineStart.y,e.getX(),e.getY());}lineStart.move(e.getX(),e.getY(),Color.red,50); }publicvoidmouseReleased(MouseEvente){if(isFirst){ isFirst=false; lineStart.move(e.getX(),e.getY(),Color.red,50); }if(theButton.equals("zhixian")){//直線 g.setColor(cc); g.drawLine(lineStart.x,lineStart.y,e.getX(),e.getY()); lineStart.move(e.getX(),e.getY(),Color.red,50); }if(theButton.equals("tuoyuan")){//橢圓 g.setColor(cc); if(tuoyuanFirst&&name3!="填充"){ name3="不填充"; tuoyuanFirst=false; } if(name3=="不填充") g.drawOval(lineStart.x,lineStart.y,Math.abs((e.getX()-lineStart.x)),Math.abs((e.getY()-lineStart.y)));if(name3=="填充")g.fillOval(lineStart.x,lineStart.y,Math.abs((e.getX()-lineStart.x)),Math.abs((e.getY()-lineStart.y)));}if(theButton.equals("duopianxing")){//多邊性 g.setColor(cc); g.drawLine(lineStart.x,lineStart.y,e.getX(),e.getY());}if(theButton.equals("juxing")){//矩形 g.setColor(cc); if(juxingFirst&&name3!="填充"){ name3="不填充"; juxingFirst=false; } if(name3=="不填充") g.drawRect(lineStart.x,lineStart.y,Math.abs((e.getX()-lineStart.x)),Math.abs((e.getY()-lineStart.y)));if(name3=="填充")g.fillRect(lineStart.x,lineStart.y,Math.abs((e.getX()-lineStart.x)),Math.abs((e.getY()-lineStart.y)));}if(theButton.equals("yuanjiaojuxing")){//圓角矩形 g.setColor(cc); if(yuanjiaoFirst&&name3!="填充"){ name3="不填充"; yuanjiaoFirst=false; } if(name3=="不填充")

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論