JAVA課程設(shè)計(jì)凸多邊形繪圖器_第1頁
JAVA課程設(shè)計(jì)凸多邊形繪圖器_第2頁
JAVA課程設(shè)計(jì)凸多邊形繪圖器_第3頁
JAVA課程設(shè)計(jì)凸多邊形繪圖器_第4頁
JAVA課程設(shè)計(jì)凸多邊形繪圖器_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

凸多邊形顯示器一、實(shí)驗(yàn)?zāi)康恼莆疹惖穆暶鞲袷胶投喾N封裝措施解對(duì)象的引用模型掌握累的繼承原則正確使用重載和覆蓋等多態(tài)概念設(shè)計(jì)可復(fù)用方法解運(yùn)行時(shí)多態(tài)性概念握明抽象類和最終類的方法,理解抽象類的作用。理解包的概念和作用JDK建自定義包導(dǎo)入包的方法在MyEclipse集成開發(fā)環(huán)境中,通過設(shè)置編譯路徑引用其他項(xiàng)目中聲明的類。理解接口的作用理解接口和實(shí)接口的類的關(guān)系握聲明接口一個(gè)類事項(xiàng)多個(gè)接口的聲明和使用方法;理解內(nèi)嵌類型的概念,掌握聲明內(nèi)部類的方法;熟悉Java語包和實(shí)驗(yàn)包的常用類。了解程序運(yùn)行中出現(xiàn)的各種錯(cuò)誤對(duì)不同的錯(cuò)誤采不同的手段排除錯(cuò)誤理解異常處理機(jī)制的運(yùn)行方式,掌握異處理的基本方法具備發(fā)現(xiàn)及處理程序錯(cuò)誤的能力,使應(yīng)用程序具有穩(wěn)定性和可靠性。掌握組的使用方法理解委托事件處理模型,掌握多種布局方式,掌握窗口菜單和快捷菜單設(shè)計(jì)方式熟悉在組件上繪圖的方法計(jì)出具有圖形用戶界面的能夠響應(yīng)事件的應(yīng)程序。二、題:凸多邊形顯示器三、題意分析1、功能編寫一個(gè)展示凸多邊形性質(zhì)的程序供輸入點(diǎn)的端口供顯示點(diǎn)排列后順序的文本框、提供顯示凸多邊形面積與周長的文本行,提供顯示凸多邊形形狀的畫板。、如何實(shí)現(xiàn)編寫一個(gè)類來顯示框架和響應(yīng)各類單擊事件。編寫一個(gè)PolygonCanvas用來根據(jù)條件繪圖。四、源程序清單PolygonJFrame類importjava.awt.Dimension;importjava.awt.GridLayout;importimportjava.awt.event.ActionListener;importjavax.swing.JButton;importjavax.swing.JCheckBox;importjavax.swing.JFrame;importjavax.swing.JOptionPane;importimportjavax.swing.JScrollPane;importimport/

publicJFrameActionListener{PolygonCanvaspcs;//多邊形畫板drawbutton,naturebutton;//畫圖、清理按鈕JTextField輸入點(diǎn)、和現(xiàn)實(shí)多邊形性質(zhì)的文本行JTextAreashowpoints;//顯每個(gè)點(diǎn)的信息JCheckBoxArea,perimeter;//選擇顯示的信息pointp[]=newintnum=0;JPanelpanel=newGridLayout(1,3));publicAreamessage,perimetermessage;publicnf=true;//認(rèn)可以構(gòu)成凸多邊形public{凸多邊形"Dimensiondim=getToolkit().getScreenSize();//得屏幕分辨率(屏幕分辨率是個(gè)對(duì))dim.width/3,dim.height/3);//窗口居中this.setDefaultCloseOperation(EXIT_ON_CLOSE);//窗關(guān)閉,程序結(jié)束panelEdti=newGridLayout(5,1));panel.add(panelEdti,0);addpoint=newJTextField("點(diǎn)輸入格式(XXXX,XXXX)");addpoint.addActionListener(this);//本框響應(yīng)單擊事件Area=new面"JCheckBox("長"selected=newJPanel();//將兩個(gè)復(fù)選按鈕入同一面板selected.add(perimeter);panelEdti.add(selected);showpolygon=newJTextField("屬性"showpolygon.setEditable(false);//性行不能編輯JButton("繪圖");JButton("性"naturebutton.addActionListener(this);showpoints=newJTextArea();jsp=newJScrollPane(showpoints);this.getContentPane().add(panel);point[]temp=newpoint[1];/

pcsPolygonCanvas(temp,nf);//板初始化為軸y軸原點(diǎn)(this.setVisible(true);}publicvoide){//TODOAuto-generatedstubif(e.getSource()==addpoint)//響應(yīng)點(diǎn)編輯文本框{try{//處理文本框的數(shù)據(jù)thrownew第+(num+1)+"的輸入格式錯(cuò)誤,請(qǐng)按格式輸!");intintpoint(x,y);//處理后的點(diǎn)放入數(shù)組p中第個(gè)點(diǎn)"+p[num-1]+"\n");}f)若輸入格式不正確則拋出相當(dāng)于沒輸入{JOptionPane.showMessageDialog(drawbutton,f.toString());}}if(e.getSource()==drawbutton)//若按繪圖按鈕{if(nf){point[]realp=newpoint[num];for(intrealp[i]=p[i];try{Areamessage=polygon.area();perimetermessage=polygon.perimeter();nf);pcs.repaint();排后的點(diǎn)如下:for(inti=0;i<polygon.p.length&&polygon.p[i]!=null;i++)第+(i+1)+"個(gè)點(diǎn)"/

nf=false;}//若不能構(gòu)成凸多邊形則Polygon構(gòu)函數(shù)拋出異常f)//捉異常只畫點(diǎn){nf=false;pcs.set(realp,nf);pcs.repaint();JOptionPane.showMessageDialog(drawbutton,f.toString()+"中藍(lán)點(diǎn)即為所給點(diǎn)");}}//已經(jīng)畫過圖就拋出對(duì)話框{int是否重新繪!");選擇確定就重畫{point[]temp=newpoint[1];pcs.repaint();請(qǐng)重新輸入");}否則直接退出程序System.exit(0);}}if(e.getSource()==naturebutton)//擇屬性按鈕{{showpolygon.setText("");showpolygon.setText("面:"+Areamessage);if(perimeter.isSelected())周"+perimetermessage);}必須先繪圖!");}}/***/

*/publicvoidargs){//TODOAuto-generatedstubPolygonJFrame();}}PolygonCanvas類importjava.awt.Canvas;importjava.awt.Color;importimportimportpublicimplementsComponentListener{pointp[];nf;public[]p,booleannf)//nf用畫圖的選擇{}publicvoid[]p,booleannf){point[p.length];this.nf=nf;for(inti=0;i<p.length;i++)this.p[i]=newpoint(p[i]);}publicvoidpaint(Graphics{intx0=this.getWidth()/2;intif(nf)//若能構(gòu)成凸多邊形則畫多邊形{g.drawLine(x0,0,x0,y0*2);y0,x0*2,intfor(inti=0;i<length-1;i++)p[i].y+y0,p[i+1].x+x0,p[length-1].y+y0,p[0].x+x0,p[0].y+y0);}//若不能則只畫點(diǎn)/

{intfor(inti=0;i<length;i++)y0+p[i].y-5,5);}}publicvoid{//TODOAuto-generatedstubthis.repaint();}publicvoid{//TODOAuto-generatedstub}publicvoidcomponentShown(ComponentEvente){//TODOAuto-generatedstub}publicvoide){//TODOA

溫馨提示

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

評(píng)論

0/150

提交評(píng)論