Java語言程序設計_第1頁
Java語言程序設計_第2頁
Java語言程序設計_第3頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

Java語言程序設計

第九章課后習題答案drawLine方法。編寫一個程序,該程序繪制一個5X9的網(wǎng)絡,使用//NetWork類importjava.awt.Graphics;importjavax.swing.JFrame;publicclassNetWorkextendsJFrame{publicNetWork(){//設置窗體大小this.setSize(130,130);//設置窗體大小不可改變this.setResizable(false);ON_CLOSE);//設置默認關閉方式,關閉窗體的同時結束程序this.setDefaultCloseOperation(JFrame.EXIT_//將窗體顯示出來this.setVisible(true);drawLine方法。ON_CLOSE);}//橫縱格之間都間隔10像素,起點在(20,40)publicvoidpaint(Graphicsg){//繪制橫向線for(inti=0;i<=5;i++){g.drawLine(20,40+i*10,110,40+i*10);}//繪制縱向線for(inti=0;i<=9;i++){g.drawLine(20+i*10,40,20+i*10,90);}}}//test9_1類publicclasstest9_1{publicstaticvoidmain(String[]args){newNetWork();}}運行結果:編寫一個程序,該程序以不同的顏色隨機產(chǎn)生三角形,每個三角形用不同的顏色進行填充。//Triangle類importjava.awt.Color;importjava.awt.Graphics;importjava.util.Random;importjavax.swing.JFrame;publicclassTriangleextendsJFrame{Randomrnd=newRandom();//這里定義4個三角形int[][]x=newint[4][3];int[][]y=newint[4][3];int[][]color=newint[4][3];publicTriangle(){for(inti=0;i<4;i++){for(intj=0;j<3;j++){color[i][j]=rnd.nextInt(255);x[i][j]=rnd.nextInt(i*100+100);//加50像素是為了避免頂?shù)酱绑w上沿y//加50像素是為了避免頂?shù)酱绑w上沿}}//窗體標題this.setTitle("隨機三角形");//窗體大小this.setSize(500,500);//窗體大小不可變this.setResizable(false);//關閉窗體的同時結束程序this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//顯示窗體this.setVisible(true);publicvoidpaint(Graphicsg)(for(inti=0;i<4;i++)(g.setColor(newColor(color[i][0],color[i][1],color[i][2]));g.fillPolygon(x[i],y[i],3);)))//test9_2publicclasstest9_2(publicstaticvoidmain(String口args)(newTriangle();))運行結果:座隨機王角形編寫一個Applet,該程序請求用戶輸入圓的半徑,然后顯示該圓的直徑、周長和面積。//test9_3importjavax.swing.*;importjava.awt.*;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;publicclasstest9_3extendsJApplet{//聲明5個標簽privateJLabeljLabel1privateJLabeljLabel2privateJLabeljLabel3privateJLabeljLabel4privateJLabeljLabel5//1個單行文本private//2個按鈕JTextFieldtextOfRadiusprivateuttonutton1;privateuttonutton2;//初始化publicvoidtry{init(){java.awt.EventQueue.invokeAndWait(newRunnable(){publicvoidrun(){initComponents();}});}catch(Exceptionex){ex.printStackTrace();}}jLabel1=newJLabel(jLabel2=newJLabel(jLabel3=newJLabel(jLabel4=newJLabel(//聲明8個組件//聲明8個組件"輸入圓的半徑:",SwingConstants.CENTER);"圓的周長:",SwingConstants.CENTER);"",SwingConstants.CENTER);"圓的面積:",SwingConstants.CENTER);jLabel5=newJLabel("",SwingConstants.CENTER);textOfRadius=newJTextField("半徑");utton1=newutton("計算”);utton2=newutton("退出");//按鈕添加監(jiān)聽器utton1.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEventevt){utton1ActionPerformed(evt);}});//按鈕添加監(jiān)聽器utton2.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEventevt){utton2ActionPerformed(evt);}});//聲明定義內(nèi)容面板,并且設置其布局格式為:4行2列格子Containerc=getContentPane();c.setLayout(newGridLayout(4,2));//將8個組件加入到內(nèi)容面板c.add(jLabell);c.add(textOfRadiusc.add(jLabel2);c.add(jLabel3);c.add(jLabel4);c.add(jLabel5);c.add(utton1);c.add(utton2);}//求周長方法privateStringRound(doublea){doubleperimeter=a*2*3.14;Strings=newString(String.valueOf(perimeter));returns;}//求面積方法privateStringArea(doublea){doublearea=a*a*3.14;Strings=newString(String.valueOf(area));returns;)//點擊針算”按鈕uttonl觸發(fā)的方法privatevoidutton1ActionPerformed(ActionEventevt){//捕獲單文本輸入非數(shù)字的異常try{Strings=textOfRadius.getText();//獲得單文本字符doublea=Double.valueOf(s).floatValue();//字符轉化為雙精度jLabel3.setText(Round(a));//標簽內(nèi)容為周長jLabel5.setText(Area(a));//標簽內(nèi)容為面積)catch(NumberFormatExceptionr){輸入錯誤//單文本為非數(shù)字彈出提示輸入錯誤”框輸入錯誤JOptionPane.showMessageDialog(this,”請輸入數(shù)字類型”,”",JOptionPane.WARNING_MESSAGE);textOfRadius.setText("");))//點擊退出”按鈕utton2觸發(fā)的方法publicvoidutton2ActionPerformed(ActionEventevt){System.exit(0);))運行結果:運行結果:編譯text9_3.java產(chǎn)生字節(jié)碼文件test9_3.class,接下來需要編寫一個HTM頃件text9_3.html來嵌入text9_3.class,代碼如下:<html><appletcode="test9_3.class"></applet></html>將test9_3.html文件和test9_3.class文件放在同一個目錄下,在瀏覽器中打開這個test9_3.html文件,實現(xiàn)的效果如下:D:\y<iorktpachitier\bin\test9_3,him1-00°£D:\tvorkspacitler'\bin■1.0EM婀蛤6.28畫嗣面積:玷4退出編寫一個Applet,向其輸入五個數(shù),然后以條形圖(bargraph)的形式來表示這些數(shù)。編寫一個繪制圓形的程序,當鼠標在繪制區(qū)域中單擊時,該正方形的左上角頂點應準確的跟隨鼠標光標移動,重繪該圓形。//MyJFrame類importimportimportjava.awt.Graphics;java.awt.event.MouseEvent;java.awt.event.MouseListener;importjavax.swing.JFrame;publicclassMyJFrameextendsJFrameimplementsMouseListener{intx=50;inty=50;intradius=50;publicMyJFrame()(this.setTitle("繪制圓形");this.setSize(200,200);this.setResizable(false);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.addMouseListener(this);this.setVisible(true);publicclass}publicvoidpaint(Graphicsg)(g.drawOval(x,y,radius,radius);}publicvoidmouseClicked(MouseEvente)(//TODOAuto-generatedmethodstubthis.x=e.getX();this.y=e.getY();this.repaint();System.out.println("x:"+e.getX()+"\ny:"+e.getY());}publicvoidmouseEntered(MouseEvente)(//TODOAuto-generatedmethodstub}publicvoidmouseExited(MouseEvente)(//TODOAuto-generatedmethodstub}publicvoidmousePressed(MouseEvente)(//TODOAuto-generatedmethodstub}publicvoidmouseReleased(MouseEvente)(//TODOAuto-generatedmethodstub//test9_5publicclasstest9_3(publicstaticvoidmain(String[]args)(newMyJFrame();運行結果:編寫一個“猜數(shù)”程序:該程序隨機在1到100的范圍內(nèi)選擇一個供用戶猜測的整數(shù),然后改程序顯示提示信息,要求用戶輸入一個1到100之間的整數(shù),根據(jù)輸入偏大、偏小、正確,程序將顯示不同的圖標。//GuessNumber類importjava.awt.GridLayout;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.util.Random;importjavax.swing.utton;importjavax.swing.JFrame;importjavax.swing.JLabel;importjavax.swing.JOptionPane;importjavax.swing.JTextField;importjavax.swing.SwingConstants;publicclassGuessNumberextendsJFrameimplementsActionListener(intnumberOfRandom;//游戲程序隨機數(shù)intnumberOfUser;//玩家輸入整數(shù)JLabellabel1;//標簽1:輸入一個1到100之間的整數(shù)"JLabellabel2;//標簽2:提示”JLabellabel3;//標簽3:提示的內(nèi)容(偏大、偏小、正確)uttonbuttonOfSure;//確定按鈕uttonbuttonOfExit;//退出按鈕JTextFieldjTextField;//猜數(shù)輸入單行文本框publicvoidinit()(//窗體的定義this.setTitle("這是一個猜數(shù)游戲");this.setSize(400,120);this.setResizable(false);this.setLayout(newGridLayout(3,2));this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//隨機數(shù)Randomrandom=newRandom();numberOfRandom=random.nextInt(100);//各組件的定義label1=newJLabel("請輸入一個1到100之間的整數(shù):");label2=newJLabel("提示:",SwingConstants.CENTER);label3=newJLabel("猜猜看");buttonOfSure=newutton("確定");this.getRootPane().setDefaultButton(buttonOfSure);//觸發(fā)’確定”按鈕buttonOfSure.addActionListener(this);buttonOfExit=newutton("退出");buttonOfExit.addActionListener(this);jTextField=newJTextField("輸入");//窗體加入各組件this.add(label1);this.add(jTextField);this.add(label2);this.add(label3);this.add(buttonOfSure);this.add(buttonOfExit);//顯示窗體this.setVisible(true);System.out.println(numberOfRandom});//偷偷看看隨機數(shù),默認用戶按下回車鍵哈哈//事件處理publicvoideventHandle()(//捕獲非整型輸入異常try(numberOfUser=Integer.parseInt(jTextField.getText());//獲得用戶輸入數(shù)if(numberOfUser<1||numberOfUser>100){JOptionPane.showMessageDialog(this,”請輸入1到100之間的整數(shù)”);}else{if(numberOfUser>numberOfRandom){label3.setText("偏大");jTextField.requestFocus();//清空文本框并使重新獲得焦點}if(numberOfUser<numberOfRandom){label3.setText("偏小");jTextField.requestFocus();}if(numberOfUser==numberOfRandom){label3.setText("恭喜你,答對了。”);jTextField.requestFocus();}}}catch(NumberFormatExceptione){JOptionPane.showMessageDialog(this,”請輸入整數(shù)","輸入錯誤”,JOptionPane.WARNING_MESSAGE);jTextField.requestFocus();}}//按鈕觸發(fā)選擇publicvoidactionPerformed(ActionEvente){if(e.getActionCommand()=="確定"){this.eventHandle();}if(e.getActionCommand()=="退出”){System.exit(0);}}publicstaticvoidmain(String[]args){newGuessNumber().init();}運行結果:7.練習使用JscrollPane。使用BorderLayout將JFrame布局分為左右兩塊;左邊又使用GridLayout,包含三個按鈕,右邊在JLabel里顯示一幅圖畫,按鈕控制JLabel是否顯示滾動條。//test9_7importjava.awt.BorderLayout;importjava.awt.Button;importjava.awt.Container;importjava.awt.GridLayout;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjavax.swing.ImageIcon;importjavax.swing.JFrame;importjavax.swing.JLabel;importjavax.swing.JOptionPane;importjavax.swing.JPanel;importjavax.swing.JScrollPane;importjavax.swing.ScrollPaneConstants;publicclasstest97extendsJFrameimplementsActionListener{privateJPaneljPanel;//左邊panel框privateButtonbutton1;privateButtonbutton2;privateButtonbutton3;privateJScrollPanejscrollPane;//右邊滾動框privateJLabellabel;//滾動框中的標簽publicImageIconpicture=null;//標簽中的圖標publicbooleanwhetherCroll=true;//用于切換滾動條的顯示publicvoidinit()(JFramejFrame=newJFrame("練習使用JscrollPane");Containerpane=jFrame.getContentPane();this.setDefaultCloseOperation((JFrame.EXIT_ON_CLOSE));//定義左邊鑲板JPanel框和三個按鈕jPanel=newJPanel(newGridLayout(3,1,0,30));button1=newButton("滾動");button1.addActionListener(thisbutton2=newButton("試試");button2.addActionListener(thisbutton3=newButton("退出");button3.addActionListener(thisjPanel.add(button1);jPanel.add(button2);jPanel.add(button3);//讀取圖片作為圖標picture=newImageIcon("D:/image/fuck.jpg/");//將圖標賦給標簽labellabel=newJLabel(picture);//定義滾動框,總是顯示滾動條jscrollPane=newJScrollPane(label,ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS,ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);//將左右兩邊的中間容器放棄JFrame中pane.add(jPanel,BorderLayout.WEST);pane.add(jscrollPane,BorderLayout.EAST);//排版顯示jFrame.pack();jFrame.setVisible(true);)@OverridepublicvoidactionPerformed(ActionEvente)(//TODOAuto-generatedmethodstubif(e.getActionCommand()=="滾動"){VERTICAL_SCROLLBARHORIZONTAL_SCROLif(whetherCroll){jscrollPane.setVerticalScrollVERTICAL_SCROLLBARHORIZONTAL_SCROL_NEVER);//垂直不顯示jscrollPane.setHorizontalScrollBarPolicy(JScrollPane.LBAR_NEVER);//水平不顯示whetherCroll=false;VERTICAL_SCROLLBARHORIZONTAL_SCROL)else{jscrollPane.setVerticalScrollVERTICAL_SCROLLBARHORIZONTAL_SCROL_ALWAYS);//垂直顯示jscrollPane.setHorizontalScrollBarPolicy(JScrollPane.LBAR_ALWAYS);//水平顯示whetherCroll=true;))if(e.getActionCommand()=="試試"){JOptionPane.showMessageDialog(this,”oh,,,Fuckyourteacher?yealgood!");)if(e.getActionCommand()=="退出”){System.exit(0);))publicstaticvoidmain(String[]args){newtest9_7().init();))運行結果:顯示滾動條國攜習健用EcpISw=■回淺點擊“滾動”按鈕后,沒顯示滾動條8.練習使用JLisE建立兩個JList,雙擊其中任何一個中的某一項,此項就會跑到另外一個JList中。//test9_8importjava.awt.Container;importjava.awt.GridLayout;importjava.awt.event.MouseEvent;importjava.awt.event.MouseListener;importjavax.swing.DefaultListModel;importjavax.swing.JFrame;importjavax.swing.JList;publicclasstest98extendsJFrameimplementspublicJFramejFrame;publicJListjList1;publicJListjList2;publicDefaultListModellistModel1;publicDefaultListModellistModel2;publicvoidinit(){JFramejFrame=newJFrame("練習使用List"Containerpane=jFrame.getContentPane();pane.setLayout(newGridLayout(1,2));MouseListener{);jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);listModel1=newDefaultListModel();listModel1.addElement("First");listModel1.addElement("Second");listModel1.addElement("Third");listModel2=newDefaultListModel();listModel2.addElement("one");listModel2.addElement("two");listModel2.addElement("three");jList1=newJList(listModel1);jList2=newJList(listModel2);jList1.addMouseListener(this);jList2.addMouseListener(this);pane.add(jList1);pane.add(jList2);jFrame.pack();jFrame.setVisible(true);@OverridepublicvoidmouseClicked(MouseEvente)(//TODOAuto-generatedmethodstubif(e.getSource()==jList1)(intindex=jList1.locationToIndex(e.getPoint());Objecto=jList1.getModel().getElementAt(index);listModel2.addElement(o);}if(e.getSource()==jList2)(intindex=jList2.locationToIndex(e.getPoint());Objecto=jList2.getModel().getElementAt(index);listModel1.addElement(o);}}@OverridepublicvoidmousePressed(MouseEvente)(//TODOAuto-generatedmethodstub}@OverridepublicvoidmouseReleased(MouseEvente)(//TODOAuto-generatedmethodstub}@OverridepublicvoidmouseEntered(MouseEvente)(//TODOAuto-generatedmethodstub}@OverridepublicvoidmouseExited(MouseEvente)(//TODOAuto-generatedmethodstub}publicstaticvoidmain(String[]args)(newtest9_8().init();}運行結果:,咨習隧用Li砒〔口I回IFirstoneSecondtwoThirdthreethreeFirstFirstS&conriFirstthre&FirstFirstSecond9.練習使用JComboBox。包括一個JLables一個JComboBox,可以通過輸入或者選擇JComboBox中的某一項來控制JLable中文字的大小。//test9_9importjava.awt.Container;importjava.awt.Font;importjava.awt.GridLayout;importjava.awt.event.ItemEvent;importjava.awt.event.ItemListener;importjavax.swing.JComboBox;importjavax.swing.JFrame;importjavax.swing.JLabel;importjavax.swing.JOptionPane;publicclasstest99extendsJFrameimplementsItemListener{publicJFramejFrame;privateJLabeljLabel;privateJComboBoxjComboBox;privateString[]fontSize={"8","14","20","28","32","40"};publicvoidjFrame=newJFrame(Containercontainer=container.setLayout("練習ComboBox");jFrame.getContentPane();newGridLayout(2,1));publicvoidjFrame=newJFrame(Containercontainer=container.setLayout("練習ComboBox");jFrame.getContentPane();newGridLayout(2,1));jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);jLabel=newJLabel(jLabel.setFont(newFont(""jComboBox=newJComboBox("你好嗎?");,0,10));fontSizejComboBox.setEditable(jComboBox.addItemListener(//添加兩個組件container.add(container.add(true//設置字體大小););//設置復選框可以輸入this);//添加ItemListener監(jiān)聽jFrame.pack();jFrame.setVisible(//jLabel);jComboBox排版true);//);顯示}publicvoiditemStateChanged(ItemEvente)(//使用這個判斷的目的的是為了避免觸發(fā)事件總是執(zhí)行兩次的問題if(e.getStateChange()==ItemEvent.SELECTED)(try(Strings=jComboBox.getSelectedItem().toString();intintFontSize=Integer.parseInt(s);jLabel.setFont(newFont("",0,intFontSize));//System.out.println(intFontSize);}catch(NumberFormatExceptionr)(JOptionPane.showMessageDialog(this,”請輸入整數(shù)");}}}publicstaticvoidmain(String[]args)(newtest9_9().init();}}運行結果:籌習ComboBoJ口..回.r你好嗎?20▼Vj練習使用JTable包括XX、學號、語文成績、數(shù)學成績、總分五項,單擊總分會自動將語文數(shù)學成績相加。練習使用對話框。包括一個JLable和兩個utton,按任何一個utton都會產(chǎn)生一個對話框,按確定后將輸入內(nèi)容在JLable中顯示出來。//test9_11importjava.awt.Container;importjava.awt.Frame;importjava.awt.GridLayout;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListene

溫馨提示

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

評論

0/150

提交評論