java實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)2答案_第1頁
java實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)2答案_第2頁
java實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)2答案_第3頁
java實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)2答案_第4頁
java實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)2答案_第5頁
已閱讀5頁,還剩5頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、實(shí)驗(yàn)二 熟悉Applet,GUI編程實(shí)驗(yàn)?zāi)康模罕緦?shí)驗(yàn)旨在鞏固同學(xué)們對(duì)上課所講Applet,異常處理,java的控制加深理解,圖形用戶界面基本組件窗口、按鈕、文本框、選擇框、滾動(dòng)條等的使用方法,對(duì)java的語法和編程有一個(gè)更加深入的理解,為同學(xué)們以后的能夠用Java進(jìn)行獨(dú)立地編寫桌面程序打下一定的基礎(chǔ)。了解如何使用布局管理器對(duì)組件進(jìn)行管理,以及如何使用Java的事件處理機(jī)制。實(shí)驗(yàn)內(nèi)容:l 創(chuàng)建一個(gè)java項(xiàng)目,命名為experiment2。(如何創(chuàng)建項(xiàng)目參考實(shí)驗(yàn)一的項(xiàng)目創(chuàng)建方法。)(一) 創(chuàng)建圖形用戶界面圖形用戶界面(Graphic User Interface ,簡稱GUI)是為方便用戶使用設(shè)

2、計(jì)的窗口界面,在圖形用戶界面中用戶可以看到什么就操作什么,取代了在字符方式下知道是什么后才能操作什么的方式。組件(Component)是構(gòu)成GUI的基本要素,通過對(duì)不同事件的響應(yīng)來完成和用戶的交互或組件之間的交互。組件一般作為一個(gè)對(duì)象放置在容器(Container) 內(nèi),容器是能容納和排列組件的對(duì)象,如Applet、Panel(面板)、Frame(窗口)等。通過容器的add方法把組件加入到容器中。 1 在Applet中添加標(biāo)簽、按鈕并使用網(wǎng)格布局 (1)程序功能 在Applet 容器中添加組件標(biāo)簽、按鈕,并使用網(wǎng)格布局管理器排列組件在容器中的位置。 (2)編寫LX6_1.java 程序文件,源

3、代碼如下: import java.awt.*; import java.applet.Applet; public class LX6_1 extends Applet Label l1;Button b1, b2, b3, b4, b5, b6;public void init() setLayout(new GridLayout(3,3); / 設(shè)置網(wǎng)格布局(3 行3 列共9 個(gè)網(wǎng)格)l1=new Label(標(biāo)簽1);b1 = new Button(按鈕1);b2 = new Button(按鈕2);b3 = new Button(按鈕3);b4 = new Button(按鈕4);a

4、dd(l1);add(b1);add(b2);add(b3);add(new Label();add(b4);add(new Button(按鈕5);add( new Button(按鈕6);add(new Label(標(biāo)簽2);(3)編譯程序LX6_1.java。 (4)編寫顯示Applet 的頁面文件LX6_1.html,在瀏覽器顯示結(jié)果如圖2.1 所示。 圖2.1 2 在面板中添加組件 (1)程序功能:在Applet 中添加面板容器,并分別在Applet、面板容器中添加組件并使用不同的布局管理方式。(2)編寫LX6_2.java 程序文件,源代碼如下。import java.awt.*;

5、import java.awt.Color;import java.applet.Applet;public class LX6_2 extends Applet public void init() /設(shè)置最底層的 Applet 容器為順序布局setFont(new Font(Arial,Font.PLAIN,20);Label l=new Label(這是最底層的 Applet 容器中的標(biāo)簽,Label.CENTER);add(l);Panel panel1=new Panel();add( panel1);panel1.setBackground(Color.blue);panel1.s

6、etForeground(Color.red);panel1.setLayout(new BorderLayout();/設(shè)置邊界布局panel1.add(North, new Button(北);panel1.add(South, new Button(南);panel1.add(East, new Button(東);panel1.add(West, new Button(西);panel1.add(Center, new Label(這是在 Panel1 面板 中部添加的標(biāo)簽);Panel panel2=new Panel();add( panel2);panel2.setLayout(

7、new GridLayout(3,1); /設(shè)置網(wǎng)格布局Choice c=new Choice ();/創(chuàng)建下拉式列表c.addItem(北京);c.addItem(上海);c.addItem(天津);Label l1=new Label(這是在 Panel2 面板中的標(biāo)簽);Button b1=new Button(Panel2 中的按鈕);panel2.setBackground(Color.green);panel2.add(l1);panel2.add(b1);panel2.add(c);(3)編譯程序LX6_2.java。(4)編寫顯示Applet 的頁面文件LX6_2.html,在

8、瀏覽器顯示結(jié)果如圖6.2 所示。圖2.2 3、編寫程序?qū)崿F(xiàn)下圖功能。(二) 了解事件處理機(jī)制在圖形用戶界面中,程序和用戶的交互是通過組件響應(yīng)各種事件來實(shí)現(xiàn)的。例如,用戶單擊了一個(gè)按鈕,意味著發(fā)生了按鈕的單擊事件;選中下拉框中的一個(gè)選項(xiàng),意味著發(fā)生了一個(gè)選項(xiàng)事件。在Java中能產(chǎn)生事件的組件叫做事件源,如按鈕。如果希望對(duì)單擊按鈕事件進(jìn)行處理,可給事件源(按鈕)注冊(cè)一個(gè)事件監(jiān)聽器(如包含按鈕的容器),如同簽訂了一個(gè)委托合同,當(dāng)事件源發(fā)生事件時(shí),事件監(jiān)聽器就代替事件源對(duì)發(fā)生的事件進(jìn)行處理,這就是所謂的委托事件處理機(jī)制。 1單擊按鈕的事件處理程序 (1)程序功能:使用手工布局設(shè)置組件標(biāo)簽、按鈕的位置,

9、為按鈕編寫單擊事件處理方法。當(dāng)用戶用鼠標(biāo)單擊按鈕時(shí),會(huì)聽到一聲響聲。 (2)編寫LX6_3.java程序文件,源代碼如下。 import java.awt.*;import java.awt.event.*;import java.applet.Applet;public class LX6_3 extends Applet implements ActionListener / 實(shí)現(xiàn)動(dòng)作事件監(jiān)聽接口public void init() setLayout(null);/關(guān)閉默認(rèn)的順序管理布局 Label l=new Label(按一下按鈕可聽到響聲!, Label.CENTER);add(l

10、);l.setBounds(40,10,150,30);Button b=new Button(按鈕);add(b);b.setBounds(60,50,60,40);b.addActionListener (this); / 注冊(cè)事件源的動(dòng)作監(jiān)聽者public void actionPerformed(ActionEvent e) /實(shí)現(xiàn)單擊事件接口的方法Toolkit.getDefaultToolkit ().beep(); /單擊事件發(fā)生時(shí)作出的反應(yīng)(3)編譯程序LX6_3.java。 (4) 編寫顯示Applet的頁面文件LX6_3.html,在瀏覽器顯示結(jié)果如圖3.3所示。 圖2.3

11、 2. 選擇復(fù)選框和單選框按鈕的事件處理程序 (1)程序功能:在Applte 上創(chuàng)建復(fù)選框、單選框、文本區(qū)域、單行文本框等組件,并實(shí)現(xiàn)根據(jù)用戶輸入的10進(jìn)制數(shù),選擇不同選項(xiàng)可轉(zhuǎn)換為2、8、16進(jìn)制數(shù)。 (2)編寫LX6_4.java 程序文件,源代碼如下。import java.applet.Applet;import java.awt.*;import java.awt.event.*;public class LX6_4 extends Applet implements ItemListener TextArea area=new TextArea(6,30);/創(chuàng)建文本區(qū)String

12、Item=2 進(jìn)制,8 進(jìn)制,16 進(jìn)制,10 進(jìn)制;Checkbox cb=new Checkbox5;Checkbox radio=new Checkbox5;Label l=new Label(輸入10 進(jìn)制數(shù));TextField TF=new TextField(6);/創(chuàng)建單行文本框public void init()add(l);add(TF);add(area);add(new Label( 請(qǐng)選擇進(jìn)制:);for(int i=0; i4; i+) cbi=new Checkbox(Itemi);add(cbi);cbi.addItemListener(this);Checkb

13、oxGroup cbGroup=new CheckboxGroup();/創(chuàng)建單選框add(new Label(請(qǐng)選擇進(jìn)制:);for(int i=0; i4; i+) radioi=new Checkbox(Itemi,cbGroup,false);add(radioi);radioi.addItemListener(this);public void itemStateChanged(ItemEvent e) int x=Integer.parseInt(TF.getText();if (e.getItem ()=2 進(jìn)制)area.append (你選擇的是+e.getItem ()+

14、Integer.toBinaryString(x)+n);if (e.getItem ()=8 進(jìn)制)area.append (你選擇的是+e.getItem ()+ Integer.toOctalString(x)+n);if (e.getItem ()=16 進(jìn)制)area.append (你選擇的是+e.getItem ()+Integer.toHexString(x)+n);if (e.getItem ()=10 進(jìn)制)area.append (你選擇的是+e.getItem ()+x+n);(3)編譯程序LX6_4.java。 (4)編寫顯示Applet 的頁面文件LX6_4.htm

15、l,在瀏覽器顯示結(jié)果如圖3.4 所示。 圖2.4 (三)在Experiment2下創(chuàng)建自己的JApplet.效果類似于下圖。圖2.5下面是實(shí)驗(yàn)二的JApplet代碼:import javax.swing.*;import java.awt.*;import java.awt.event.*;public class drawpicture extends JApplet implements ActionListener int x=30,y=30;JButton jb1,jb2;JLabel jl1;JTextField jt1;JPanel jp;Container c; public v

16、oid init() c=getContentPane(); c.setLayout(new BorderLayout(); jb1=new JButton(點(diǎn)擊); jb2=new JButton(Reset); jl1=new JLabel(增加半徑值:); jp=new JPanel(); jt1=new JTextField(20); jp.add(jl1); jp.add(jt1); jp.add(jb1); jp.add(jb2); c.add(jp,BorderLayout.SOUTH); jb1.addActionListener(this); jb2.addActionLis

17、tener(this); setSize(600,600); setVisible(true); public void actionPerformed(ActionEvent evt) if(evt.getSource()=jb1) x=x+Integer.parseInt(jt1.getText(); y=y+Integer.parseInt(jt1.getText(); repaint(); if(evt.getSource() =jb2) x=30; y=30; repaint(); public void paint(Graphics g) super.paint(g); g.dra

18、wOval(x, y, x, y);(四)編輯一個(gè)程序,并用異常處理技術(shù)來處理它,比如被0除,數(shù)組下標(biāo)溢出等。代碼:import java.awt.*;import java.awt.Color;import java.applet.Applet;public class LX6_5 extends Frame Label label1=new Label(Name :); TextField txt1=new TextField(20); Label label2=new Label(Favourates sports :); Checkbox box1=new Checkbox(Crick

19、et); Checkbox box2=new Checkbox(Badmiton); Checkbox box3=new Checkbox(Golf); Label label3=new Label(Gender); CheckboxGroup cg=new CheckboxGroup(); Checkbox r1=new Checkbox(Male,cg,false); Checkbox r2=new Checkbox(Femal,cg,false); Label label4=new Label(Comments :); TextField field1=new TextField();

20、Button b1=new Button(Submit); Button b2=new Button(Reset);public LX6_5(String s) super(s);setLayout(new GridLayout(10,1); Panel panel1=new Panel();add(panel1);panel1.setBackground(Color.blue); panel1.add(label1);panel1.add(txt1); Panel panel2=new Panel();add(panel2);panel2.setBackground(Color.red); panel2.add(label2);panel2.add(box1);panel2.add(box2);panel2.add(box3); Panel panel3=new Panel();add(panel3);panel3.setBackground(Color.green); panel3.add(label3);panel3.add(r1);panel3.add(r2); Panel panel4=new Panel();add(panel4);pan

溫馨提示

  • 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)論