版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
試驗(yàn)二熟悉Applet,GUI編程試驗(yàn)?zāi)繕?biāo):本試驗(yàn)意在鞏固同學(xué)們對(duì)上課所講Applet,異常處理,java控制加深了解,圖形用戶界面基本組件窗口、按鈕、文本框、選擇框、滾動(dòng)條等使用方法,對(duì)java語法和編程有一個(gè)愈加深入了解,為同學(xué)們以后能夠用Java進(jìn)行獨(dú)立地編寫桌面程序打下一定基礎(chǔ)。了解怎樣使用布局管理器對(duì)組件進(jìn)行管理,以及怎樣使用Java事件處理機(jī)制。試驗(yàn)內(nèi)容:創(chuàng)建一個(gè)java項(xiàng)目,命名為experiment2。(怎樣創(chuàng)建項(xiàng)目參考《試驗(yàn)一》項(xiàng)目創(chuàng)建方法。)(一) 創(chuàng)建圖形用戶界面圖形用戶界面(GraphicUserInterface,簡稱GUI)是為方便用戶使用設(shè)計(jì)窗口界面,在圖形用戶界面中用戶能夠看到什么就操作什么,取代了在字符方式下知道是什么后才能操作什么方式。組件(Component)是組成GUI基本要素,經(jīng)過對(duì)不一樣事件響應(yīng)來完成和用戶交互或組件之間交互。組件通常作為一個(gè)對(duì)象放置在容器(Container)內(nèi),容器是能容納和排列組件對(duì)象,如Applet、Panel(面板)、Frame(窗口)等。經(jīng)過容器add方法把組件加入到容器中。1.在Applet中添加標(biāo)簽、按鈕并使用網(wǎng)格布局(1)程序功效在Applet容器中添加組件標(biāo)簽、按鈕,并使用網(wǎng)格布局管理器排列組件在容器中位置。(2)編寫LX6_1.java程序文件,源代碼以下:importjava.awt.*;importjava.applet.Applet;publicclassLX6_1extendsApplet{Labell1;Buttonb1,b2,b3,b4,b5,b6;publicvoidinit(){setLayout(newGridLayout(3,3));//設(shè)置網(wǎng)格布局(3行3列共9個(gè)網(wǎng)格)l1=newLabel("標(biāo)簽1");b1=newButton("按鈕1");b2=newButton("按鈕2");b3=newButton("按鈕3");b4=newButton("按鈕4");add(l1);add(b1);add(b2);add(b3);add(newLabel());add(b4);add(newButton("按鈕5"));add(newButton("按鈕6"));add(newLabel("標(biāo)簽2"));}}(3)編譯程序LX6_1.java。(4)編寫顯示Applet頁面文件LX6_1.html,在瀏覽器顯示結(jié)果如圖2.1所表示。圖2.12.在面板中添加組件(1)程序功效:在Applet中添加面板容器,并分別在Applet、面板容器中添加組件并使用不一樣布局管理方式。(2)編寫LX6_2.java程序文件,源代碼以下。importjava.awt.*;importjava.awt.Color;importjava.applet.Applet;publicclassLX6_2extendsApplet{publicvoidinit(){//設(shè)置最底層Applet容器為次序布局setFont(newFont("Arial",Font.PLAIN,20));Labell=newLabel("這是最底層Applet容器中標(biāo)簽",Label.CENTER);add(l);Panelpanel1=newPanel();add(panel1);panel1.setBackground(Color.blue);panel1.setForeground(Color.red);panel1.setLayout(newBorderLayout());//設(shè)置邊界布局panel1.add("North",newButton("北"));panel1.add("South",newButton("南"));panel1.add("East",newButton("東"));panel1.add("West",newButton("西"));panel1.add("Center",newLabel("這是在Panel1面板中部添加標(biāo)簽"));Panelpanel2=newPanel();add(panel2);panel2.setLayout(newGridLayout(3,1));//設(shè)置網(wǎng)格布局Choicec=newChoice();//創(chuàng)建下拉式列表c.addItem("北京");c.addItem("上海");c.addItem("天津");Labell1=newLabel("這是在Panel2面板中標(biāo)簽");Buttonb1=newButton("Panel2中按鈕");panel2.setBackground(Color.green);panel2.add(l1);panel2.add(b1);panel2.add(c);}}(3)編譯程序LX6_2.java。(4)編寫顯示Applet頁面文件LX6_2.html,在瀏覽器顯示結(jié)果如圖6.2所表示。圖2.23、編寫程序?qū)崿F(xiàn)下列圖功效。(二)了解事件處理機(jī)制在圖形用戶界面中,程序和用戶交互是經(jīng)過組件響應(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è)委托協(xié)議,當(dāng)事件源發(fā)生事件時(shí),事件監(jiān)聽器就代替事件源對(duì)發(fā)生事件進(jìn)行處理,這就是所謂委托事件處理機(jī)制。1.單擊按鈕事件處理程序(1)程序功效:使用手工布局設(shè)置組件標(biāo)簽、按鈕位置,為按鈕編寫單擊事件處理方法。當(dāng)用戶用鼠標(biāo)單擊按鈕時(shí),會(huì)聽到一聲響聲。(2)編寫LX6_3.java程序文件,源代碼以下。
importjava.awt.*;importjava.awt.event.*;importjava.applet.Applet;publicclassLX6_3extendsAppletimplementsActionListener{//實(shí)現(xiàn)動(dòng)作事件監(jiān)聽接口publicvoidinit(){setLayout(null);//關(guān)閉默認(rèn)次序管理布局Labell=newLabel("按一下按鈕可聽到響聲!",Label.CENTER);add(l);l.setBounds(40,10,150,30);Buttonb=newButton("按鈕");add(b);b.setBounds(60,50,60,40);b.addActionListener(this);//注冊(cè)事件源動(dòng)作監(jiān)聽者}publicvoidactionPerformed(ActionEvente){//實(shí)現(xiàn)單擊事件接口方法Toolkit.getDefaultToolkit().beep();//單擊事件發(fā)生時(shí)作出反應(yīng)}}(3)編譯程序LX6_3.java。(4)編寫顯示Applet頁面文件LX6_3.html,在瀏覽器顯示結(jié)果如圖3.3所表示。圖2.32.選擇復(fù)選框和單項(xiàng)選擇框按鈕事件處理程序(1)程序功效:在Applte上創(chuàng)建復(fù)選框、單項(xiàng)選擇框、文本區(qū)域、單行文本框等組件,并實(shí)現(xiàn)依照用戶輸入10進(jìn)制數(shù),選擇不一樣選項(xiàng)可轉(zhuǎn)換為2、8、16進(jìn)制數(shù)。(2)編寫LX6_4.java程序文件,源代碼以下。importjava.applet.Applet;importjava.awt.*;importjava.awt.event.*;publicclassLX6_4extendsAppletimplementsItemListener{TextAreaarea=newTextArea(6,30);//創(chuàng)建文本區(qū)StringItem[]={"2進(jìn)制","8進(jìn)制","16進(jìn)制","10進(jìn)制"};Checkboxcb[]=newCheckbox[5];Checkboxradio[]=newCheckbox[5];Labell=newLabel("輸入10進(jìn)制數(shù)");TextFieldTF=newTextField(6);//創(chuàng)建單行文本框publicvoidinit(){add(l);add(TF);add(area);add(newLabel("請(qǐng)選擇進(jìn)制:"));for(inti=0;i<4;i++){cb[i]=newCheckbox(Item[i]);add(cb[i]);cb[i].addItemListener(this);}CheckboxGroupcbGroup=newCheckboxGroup();//創(chuàng)建單項(xiàng)選擇框add(newLabel("請(qǐng)選擇進(jìn)制:"));for(inti=0;i<4;i++){radio[i]=newCheckbox(Item[i],cbGroup,false);add(radio[i]);radio[i].addItemListener(this);}}publicvoiditemStateChanged(ItemEvente){intx=Integer.parseInt(TF.getText());if(e.getItem()=="2進(jìn)制")area.append("你選擇是"+e.getItem()+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.html,在瀏覽器顯示結(jié)果如圖3.4所表示。圖2.4(三)在Experiment2下創(chuàng)建自己JApplet.效果類似于下列圖。圖2.5下面是試驗(yàn)二JApplet代碼:importjavax.swing.*;importjava.awt.*;importjava.awt.event.*;publicclassdrawpictureextendsJAppletimplementsActionListener{intx=30,y=30;JButtonjb1,jb2;JLabeljl1;JTextFieldjt1;JPaneljp;Containerc;publicvoidinit(){c=getContentPane();c.setLayout(newBorderLayout());jb1=newJButton("點(diǎn)擊");jb2=newJButton("Reset");jl1=newJLabel("增加半徑值:");jp=newJPanel();jt1=newJTextField("20");jp.add(jl1);jp.add(jt1);jp.add(jb1);jp.add(jb2);c.add(jp,BorderLayout.SOUTH);jb1.addActionListener(this);jb2.addActionListener(this);setSize(600,600);setVisible(true);}publicvoidactionPerformed(ActionEventevt){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();}}publicvoidpaint(Graphicsg){super.paint(g);g.drawOval(x,y,x,y);}}(四)編輯一個(gè)程序,并用異常處理技術(shù)來處理它,比如被0除,數(shù)組下標(biāo)溢出等。代碼:importjava.awt.*;importjava.awt.Color;importjava.applet.Applet;publicclassLX6_5extendsFrame{Labellabel1=newLabel("Name:");TextFieldtxt1=newTextField(20);Labellabel2=newLabel("Favouratessports:");Checkboxbox1=newCheckbox("Cricket");Checkboxbox2=newCheckbox("Badmiton");Checkboxbox3=newCheckbox("Golf");Labellabel3=newLabel("Gender");CheckboxGroupcg=newCheckboxGroup();Checkboxr1=newCheckbox("Male",cg,false);Checkboxr2=newCheckbox("Femal",cg,false);Labellabel4=newLabel("Comments:");TextFieldfield1=newTextField();Buttonb1=newButton("Submit");Buttonb2=newButton("Reset");publicLX6_5(Strings){super(s);setLayout(newGridLayout(10,1));Panelpanel1=newPanel();add(panel1);panel1.setBackground(Color.blue);panel1.add(label1);panel1.add(txt1);Panelpanel2=newPanel();add(panel2);panel2.setBackground(Color.red);panel2.add(label2);panel2.add(box1);panel2.add(box2);panel2.add(box3);Panelpanel3=newPanel();add(panel3);panel3.setBackground(Color.green);panel3.add(label3);panel3.add(r1);panel3.add(r2);Panelpanel4=newPanel()
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 一線工作法建立調(diào)研工作制度
- 企業(yè)員工培訓(xùn)與技能提升計(jì)劃制度
- 交通設(shè)施報(bào)廢更新制度
- 2026年語文教育精講文學(xué)知識(shí)問答題庫
- 2026年教育心理學(xué)專業(yè)考研教育評(píng)估與教育干預(yù)模擬題
- 2026年通信網(wǎng)絡(luò)技術(shù)基礎(chǔ)與應(yīng)用模擬題
- 2026年注冊(cè)會(huì)計(jì)師考試預(yù)測模擬試題及答案詳解
- 2026年軟件測試工程師認(rèn)證考試軟件缺陷管理測試用例設(shè)計(jì)
- 農(nóng)村閑置校舍改造為數(shù)字創(chuàng)業(yè)中心的PPP項(xiàng)目合同
- 檢驗(yàn)科銳器廢棄物的處理制度及流程
- 市安全生產(chǎn)例會(huì)制度
- 高新區(qū)服務(wù)規(guī)范制度
- 小程序維護(hù)更新合同協(xié)議2025
- 中國自有品牌發(fā)展研究報(bào)告2025-2026
- 2025年豆制品千張銷量及餐桌烹飪調(diào)研匯報(bào)
- 地形測量投標(biāo)標(biāo)書技術(shù)設(shè)計(jì)書
- 2025及未來5年馬桶水箱組合項(xiàng)目投資價(jià)值分析報(bào)告
- 合伙建廠合同協(xié)議書
- 代建合同安全協(xié)議書
- 貸款掛靠合同(標(biāo)準(zhǔn)版)
- GM/T 0002-2012SM4分組密碼算法
評(píng)論
0/150
提交評(píng)論