java教學(xué)課件:第5章 構(gòu)成用戶界面的窗口環(huán)境_第1頁(yè)
java教學(xué)課件:第5章 構(gòu)成用戶界面的窗口環(huán)境_第2頁(yè)
java教學(xué)課件:第5章 構(gòu)成用戶界面的窗口環(huán)境_第3頁(yè)
java教學(xué)課件:第5章 構(gòu)成用戶界面的窗口環(huán)境_第4頁(yè)
java教學(xué)課件:第5章 構(gòu)成用戶界面的窗口環(huán)境_第5頁(yè)
已閱讀5頁(yè),還剩89頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、1第第5章章 構(gòu)成用戶界面的窗口環(huán)境構(gòu)成用戶界面的窗口環(huán)境2構(gòu)成用戶界面的窗口環(huán)境構(gòu)成用戶界面的窗口環(huán)境45.1 使用使用AWT(Abstract Window Toolkit)構(gòu)件構(gòu)件45.2 包含包含構(gòu)件的構(gòu)件的構(gòu)件構(gòu)件-構(gòu)件容器(構(gòu)件容器(container)45.3 事件的傳遞事件的傳遞45.4 各種構(gòu)件的應(yīng)用實(shí)例各種構(gòu)件的應(yīng)用實(shí)例(一一)45.5 外觀的管理與控制外觀的管理與控制45.6 各種構(gòu)件的應(yīng)用實(shí)例各種構(gòu)件的應(yīng)用實(shí)例(二二)45.7 總結(jié)總結(jié)35.1 使用使用AWT構(gòu)件構(gòu)件4在在AWT的概念中,窗口系統(tǒng)所顯示的各種對(duì)的概念中,窗口系統(tǒng)所顯示的各種對(duì)象統(tǒng)稱為構(gòu)件:象統(tǒng)稱為構(gòu)件:

2、Button,Menu,List等等都是等等都是構(gòu)件。構(gòu)件。4Component是代表構(gòu)件最基本的類。是代表構(gòu)件最基本的類。4Component類中定義了各種窗口對(duì)象中最基本、類中定義了各種窗口對(duì)象中最基本、最重要的方法和性質(zhì)。隨時(shí)隨處都有可能利用最重要的方法和性質(zhì)。隨時(shí)隨處都有可能利用Component定義的方法。定義的方法。45.1 使用使用AWT構(gòu)件構(gòu)件4已經(jīng)學(xué)過(guò)的:已經(jīng)學(xué)過(guò)的:4getFont,4handleEvent,keyUp4keyDown,mouseUp,4mouseDown,4mouseMove,4mouseEnter,4mouseExit,4mouseDrag, repai

3、nt4setFont,resize4沒(méi)有學(xué)過(guò)的:沒(méi)有學(xué)過(guò)的:4action, disable,enable,4getBackground,4getForeground,hide,4inside,isEnable,4isShowing,isVisible,4locate,location,4move,setBackground,4setForeground,show,4size5列表列表按鈕按鈕菜單菜單container另一個(gè)窗口另一個(gè)窗口窗口,對(duì)話框窗口,對(duì)話框5.2 包含包含構(gòu)件的構(gòu)件的構(gòu)件構(gòu)件-構(gòu)件容器構(gòu)件容器(container)container65.2 包含包含構(gòu)件的構(gòu)件的構(gòu)件構(gòu)件-

4、構(gòu)件容器構(gòu)件容器(container)import java.awt.*;import java.applet.Applet;public class CountClick extends Applet int CurrentMarks=0; public init() Button b1=new Button(“按鈕”); add.b1; 按鈕按鈕75.2 包含包含構(gòu)件的構(gòu)件的構(gòu)件構(gòu)件-構(gòu)件容器構(gòu)件容器(container)4AWT使用使用Container類類來(lái)定義最基本的來(lái)定義最基本的構(gòu)件容構(gòu)件容器器,它有兩個(gè)子類它有兩個(gè)子類:Window類和類和Panel類類.4在在Window類類還

5、有兩個(gè)子類還有兩個(gè)子類41. 定義對(duì)話框定義對(duì)話框,用用Dialog子類子類;4Java還提了一個(gè)還提了一個(gè)Dialog的子類的子類-FileDialog, 用用它生成文件對(duì)話框它生成文件對(duì)話框42. 定義一般意義的窗口定義一般意義的窗口,用用Frame類類.85.2 包含包含構(gòu)件的構(gòu)件的構(gòu)件構(gòu)件-構(gòu)件容器構(gòu)件容器(container)4Panel干什么用的呢干什么用的呢?4使你更方便的組織你的使你更方便的組織你的構(gòu)件構(gòu)件,得到賞心悅目的布得到賞心悅目的布局局4Applet是是Panel的子類的子類,因此在小應(yīng)用程序里可因此在小應(yīng)用程序里可以直接加入構(gòu)件以直接加入構(gòu)件,而一般的應(yīng)用程序必須先定

6、義而一般的應(yīng)用程序必須先定義構(gòu)件容器構(gòu)件容器.4小應(yīng)用程序在瀏覽器中所顯示的區(qū)域就是小應(yīng)用程序在瀏覽器中所顯示的區(qū)域就是Panel,所占的尺寸就是缺省得所占的尺寸就是缺省得Panel尺寸尺寸.9ContainerWindowPanelComponentFrameDialogFileDialogApplet5.2 包含包含構(gòu)件的構(gòu)件的構(gòu)件構(gòu)件-構(gòu)件容器構(gòu)件容器(container)ButtonMenuCheckboxTextfield105.3 事件的傳遞事件的傳遞(1.02)當(dāng)動(dòng)作發(fā)生在按鈕上時(shí)當(dāng)動(dòng)作發(fā)生在按鈕上時(shí), 首先看按鈕這個(gè)類有沒(méi)首先看按鈕這個(gè)類有沒(méi)有有action方法方法,如果沒(méi)有如

7、果沒(méi)有則看包含按鈕的容器類則看包含按鈕的容器類(即即panel)有沒(méi)有有沒(méi)有action方法方法,如果沒(méi)有事件就如果沒(méi)有事件就傳遞窗口傳遞窗口, 如果沒(méi)有就如果沒(méi)有就傳遞給傳遞給 component的通的通用處理方法用處理方法,如果程序如果程序中沒(méi)有定義任何中沒(méi)有定義任何action方法方法,實(shí)際上事件最終實(shí)際上事件最終不被處理不被處理窗口窗口按鈕按鈕panel11class MyPanel extends Panel MyBtn b=new MyBtn(“ok”); add(b); boolean action() .;class MyClass extends Frame MyPanel

8、p=new Mypanel(); add(p); Button b=new Button(exit); add(b); boolean action() .; 窗口窗口exitclass MyBtn extends Button boolean action() .; return true;okPanel125.3事件的傳遞事件的傳遞(1.02)4事件由包含層次由內(nèi)向外傳遞事件由包含層次由內(nèi)向外傳遞.4每個(gè)處理事件的方法要有一個(gè)返回值每個(gè)處理事件的方法要有一個(gè)返回值,通知是否通知是否繼續(xù)向上傳遞繼續(xù)向上傳遞 boolean action(Event evt, Object arg) ; re

9、turn true; 135.3 事件的傳遞事件的傳遞(1.1)窗口窗口buttonpanel按鈕的監(jiān)聽(tīng)器按鈕的監(jiān)聽(tīng)器窗口獲面板窗口獲面板的監(jiān)聽(tīng)器的監(jiān)聽(tīng)器14確定確定取消取消5.4 各種構(gòu)件的應(yīng)用實(shí)例各種構(gòu)件的應(yīng)用實(shí)例-按鈕按鈕4Button類類4功能功能:創(chuàng)建按鈕事件創(chuàng)建按鈕事件4創(chuàng)建一個(gè)創(chuàng)建一個(gè)Button4Button myButton = new Button(str);4將將button放到窗口系統(tǒng)中放到窗口系統(tǒng)中:4 add(new Button(“確定確定”);4 add(new Button(“取消取消”);4Button類的常用方法類的常用方法4 getLabel setLa

10、bel15action-接受動(dòng)作事件接受動(dòng)作事件,調(diào)用調(diào)用repaintinit-建立建立buttonpaint-顯示文字顯示文字5.4 各種構(gòu)件的應(yīng)用實(shí)例各種構(gòu)件的應(yīng)用實(shí)例-按鈕按鈕4處理處理button產(chǎn)生的事件產(chǎn)生的事件4例例:創(chuàng)建一個(gè)按鈕創(chuàng)建一個(gè)按鈕,每當(dāng)按下它時(shí)每當(dāng)按下它時(shí),在屏幕顯示文在屏幕顯示文字字(singlebutton.html)4想一想想一想:4應(yīng)該有哪些類應(yīng)該有哪些類? Button ,Font;4應(yīng)有哪些方法應(yīng)有哪些方法?16import java.awt.*;import java.applet.Applet;public class button extends

11、Applet Font font; Button b1; public void init() font= newFont(TimesRoman,Font.BOLD,20); b1=new Button(push); add(b1); setFont(font); 5.4 各種構(gòu)件的應(yīng)用實(shí)例各種構(gòu)件的應(yīng)用實(shí)例-按鈕按鈕175.4 各種構(gòu)件的應(yīng)用實(shí)例各種構(gòu)件的應(yīng)用實(shí)例-按鈕按鈕4boolean action(Event evt,Object arg)4 y+=5; repaint(); 4 return true;44paint(Graphics g)4 g.drawString(Button”

12、, 10,y);185.4 各種構(gòu)件的應(yīng)用實(shí)例各種構(gòu)件的應(yīng)用實(shí)例-按鈕按鈕import java.awt.*;例例:不在不在applet中的按鈕中的按鈕class ButtoninFrame public static void main(String args) Frame myframe=new Frame(); myframe.setTitle(Button in Frame); myframe.resize(200,200); myframe.show(); Button b1=new Button(Button1); Button b2=new Button(Button2); my

13、frame.add(b1);myframe.add(b2); .195.4 各種構(gòu)件的應(yīng)用實(shí)例各種構(gòu)件的應(yīng)用實(shí)例4一般步驟一般步驟:創(chuàng)建創(chuàng)建 new加入加入 add響應(yīng)響應(yīng) action處理處理205.4 各種構(gòu)件的應(yīng)用實(shí)例各種構(gòu)件的應(yīng)用實(shí)例SportsComputerMusicArtSportsComputerMusicArtminmaxstart1New Checkbox(label, null, false);CheckboxGroup gr=new CheckboxGroup(); New Checkbox(label, gr, false);New Checkbox(label,gr

14、,true);New TextField(20);常用的方法常用的方法 getText();setText();setEchoCharacter(char c)Scrollbar(VERTICAL,50,0,1,100);new TextArea( “this is a test”,20,40);215.4 各種構(gòu)件的應(yīng)用實(shí)例各種構(gòu)件的應(yīng)用實(shí)例-CheckBox4應(yīng)用舉例應(yīng)用舉例4建立三個(gè)復(fù)選框建立三個(gè)復(fù)選框,被選中者的標(biāo)簽內(nèi)容變成被選中者的標(biāo)簽內(nèi)容變成“changes” 應(yīng)有的類應(yīng)有的類:Checkbox 應(yīng)有的方法應(yīng)有的方法: init:建立復(fù)選框建立復(fù)選框 action:接受動(dòng)作事件接受

15、動(dòng)作事件 setLabel(“*”);225.4 各種構(gòu)件的應(yīng)用實(shí)例各種構(gòu)件的應(yīng)用實(shí)例-CheckBoximport java.awt.*;public class checkbox extends java.applet.Applet Checkbox b1,b2,b3;public void init() b1=new Checkbox(Label1,null,false);b2=new Checkbox(Label2,null,false);b3=new Checkbox(Label3,null,false);add(b1); add(b2); add(b3);23public bool

16、ean action(Event evt, Object arg) if (evt.target instanceof Checkbox) Checkbox selectedbox=(Checkbox)evt.target; String str=selectedbox.getLabel(); if (str=Label1) selectedbox.setLabel(Chnage1); else if (str=Label2) selectedbox.setLabel(Chnage2); else if (str=Label3) selctedbox.setLabel(Change3); re

17、paint();return true;5.4 各種構(gòu)件的應(yīng)用實(shí)例各種構(gòu)件的應(yīng)用實(shí)例- CheckBox244例例:在文本行中輸入在文本行中輸入,并用字符串接受并用字符串接受,顯示出來(lái)顯示出來(lái)4類的數(shù)據(jù)構(gòu)成類的數(shù)據(jù)構(gòu)成:Textfield,Button, String4類的方法構(gòu)成類的方法構(gòu)成:4init(),4action():接受按鈕事件接受按鈕事件,調(diào)用調(diào)用paint()4paint():用用getText()方法得到輸入內(nèi)容方法得到輸入內(nèi)容,并顯示并顯示.5.4 各種構(gòu)件的應(yīng)用實(shí)例各種構(gòu)件的應(yīng)用實(shí)例- TextField25import java.awt.*;public class

18、textfieldkey extends java.applet.Applet TextField t;String s;Button button;public void init() t=new TextField(,25); add(t); button=new Button(getText); add(button); 5.4 各種構(gòu)件的應(yīng)用實(shí)例各種構(gòu)件的應(yīng)用實(shí)例- TextField26public boolean action(Event evt, Object arg) if(evt.target instanceof Button) repaint(); return true

19、; public void paint(Graphics g) s=t.getText(); g.drawString(s,40,80); 5.4 各種構(gòu)件的應(yīng)用實(shí)例各種構(gòu)件的應(yīng)用實(shí)例- TextField270124354015345.5 外觀的管理與制外觀的管理與制28button1button2button4button35.5 外觀的管理與制外觀的管理與制4Panel類類(面板面板)4功能功能:容納其他對(duì)象容納其他對(duì)象,安排合理布局安排合理布局4創(chuàng)建面板創(chuàng)建面板:4 Panel myPanel=new Panel();4 add(myPanel);4將面板作為容器將面板作為容器:4 m

20、ypanel.add(button)295.5 外觀的管理與制外觀的管理與制4例例:(panel.htm)import java.awt.*;public class Panel extends java.applet.Applet Panel panel1,panel2; Button button1,button2,button3,button4; public void init() panel1=new Panel(); panel2=new Panel(); add(panel1); add(panel2); button1=new Button(Button1); button2=

21、new Button(Button2); button3=new Button(Button3); button4=new Button(Button4); panel1.add(button1); panel1.add(button2); panel2.add(button3); panel2.add(button4); 30南南中中北北西西東東5.5 外觀的管理與制外觀的管理與制4BorderLayout類類4功能功能:Applet分成五個(gè)區(qū)分成五個(gè)區(qū)4創(chuàng)建創(chuàng)建 4setLayout(new BorderLayout();4將其他構(gòu)件加入將其他構(gòu)件加入4add(“East”, new Bu

22、tton(“東東”);4add(“South”, new Button(“南南”);4add(“West”, new Button(“西西”);4add(“North”, new Button(“北北”);4add(“Center”, new Button(“中中”);315.5 外觀的管理與制外觀的管理與制4FlowLayout類類4缺省的輸出管理器缺省的輸出管理器4GridLayout類類4GridLayout mylayout = new 4GridLayout(3,3,0,0)4setLayout();rowscolshspacevspace325.5 外觀的管理與制外觀的管理與制4G

23、ridBagLayout類和類和4 GridBagConstraints類類4功能功能:借助于借助于GridBagConstraints類類,實(shí)現(xiàn)更靈活實(shí)現(xiàn)更靈活的外觀管理的外觀管理4每個(gè)構(gòu)件后都跟隨一個(gè)每個(gè)構(gòu)件后都跟隨一個(gè)GridBagLayout對(duì)象實(shí)對(duì)象實(shí)體體,來(lái)決定構(gòu)件的外觀來(lái)決定構(gòu)件的外觀.4創(chuàng)建創(chuàng)建4 GridBagLayout myLayout=new 4 GridBagLayout();335.5 外觀的管理與制外觀的管理與制4GridBagConstraints類的約束條件類的約束條件gridwidth, gridheight, gridx, gridy, 4 weightx

24、, weighty, ipadx, ipady, insets 4 fill及其設(shè)置及其設(shè)置4 GridBagConstraints.NONE4 GridBagConstraints.HORIZONTAL4 GridBagConstraints.VERTICAL4 GridBagConstraints.BOTH4 GridBagConstraints.RELATIVE34button1button2button3button8button5button6button7button4button95.5 外觀的管理與制外觀的管理與制4例例:(GridBagApplet.html)355.5 外觀

25、的管理與制外觀的管理與制public void init() GridBagLayout layout=new GridBagLayout(); setLayout(layout); GridBagConstraints GBC = new GridBagConstraints();Button button1=new Button(button1);Button button2=new Button(button2);Button button3=new Button(button3);Button button4=new Button(button4);Button button5=new

26、 Button(button5);Button button6=new Button(button6);Button button7=new Button(button7);Button button8=new Button(button8);Button button9=new Button(button9);365.5 外觀的管理與制外觀的管理與制GBC.fill=GridBagConstraints.BOTH; (按鈕可以在水平和垂直兩個(gè)方向擴(kuò)展按鈕可以在水平和垂直兩個(gè)方向擴(kuò)展) layout.setConstraints(button1,GBC);add(button1);GBC.gr

27、idwidth=GridBagConstraints.RELATIVE; (BOTH依然起作用依然起作用, 緊挨著最后一個(gè)按鈕緊挨著最后一個(gè)按鈕,)layout.setConstraints(button2,GBC);add(button2);GBC.gridwidth=GridBagConstraints.REMAINDER;(填充剩余部分填充剩余部分)layout.setConstraints(button3,GBC);add(button3);But1But2But337But1But2But3But45.5 外觀的管理與制外觀的管理與制4GBC.gridwidth= GridBagCo

28、nstraints.REMAINDER;4(表示該按鈕獨(dú)占一行表示該按鈕獨(dú)占一行)4layout.setConstraints(button4,GBC);4add(button4);38But1But2But3But4But6But55.5 外觀的管理與制外觀的管理與制4GBC.gridwidth=2;4(表示該按鈕占兩個(gè)單元表示該按鈕占兩個(gè)單元)4layout.setConstraints(button5,GBC);4add(button5);4GBC.gridwidth=4 GridBagConstraints.REMAINDER;4layout.setConstraints(button

29、6,GBC);4add(button6);39But1But2But3But4But6But5But75.5 外觀的管理與制外觀的管理與制4GBC.gridwidth=1;4GBC.gridheight=2;4(高度為兩個(gè)單元高度為兩個(gè)單元)4layout.setConstraints(button7,GBC);4add(button7);40But1But2But3But4But6But5But7But8But95.5 外觀的管理與制外觀的管理與制4GBC.gridwidth= GridBagConstraints.REMAINDER;4GBC.gridheight=1;4layout.se

30、tConstraints(button8,GBC);4add(button8);4layout.setConstraints4(button9,GBC);4add(button9);415.6 各種構(gòu)件的應(yīng)用實(shí)例各種構(gòu)件的應(yīng)用實(shí)例-Canvas45.6.2 Canvas類類(畫布畫布)4功能功能: 制作其他構(gòu)件制作其他構(gòu)件,通常用來(lái)放置圖形圖像通常用來(lái)放置圖形圖像,或或繪圖繪圖.4畫圖可以直接在畫圖可以直接在applet區(qū)域上進(jìn)行區(qū)域上進(jìn)行,定義了定義了 Canvas對(duì)象后將對(duì)象后將paint()語(yǔ)句作為該對(duì)象的方法語(yǔ)句作為該對(duì)象的方法,這些動(dòng)作就自動(dòng)發(fā)生在畫布區(qū)這些動(dòng)作就自動(dòng)發(fā)生在畫布區(qū).4

31、通常不需要處理畫布上發(fā)生的事件通常不需要處理畫布上發(fā)生的事件4創(chuàng)建創(chuàng)建4 Canvas canvas=new Canvas();4 add(canvas);425.6 各種構(gòu)件的應(yīng)用實(shí)例各種構(gòu)件的應(yīng)用實(shí)例-Canvas4例例:根據(jù)程序說(shuō)出運(yùn)行結(jié)果根據(jù)程序說(shuō)出運(yùn)行結(jié)果4注意一個(gè)程序中生成一個(gè)注意一個(gè)程序中生成一個(gè)canvas類的實(shí)例類的實(shí)例,另一另一個(gè)程序沒(méi)有個(gè)程序沒(méi)有435.6 各種構(gòu)件的應(yīng)用實(shí)例各種構(gòu)件的應(yīng)用實(shí)例-Canvasimport java.awt.*; import java.applet.*;public class canvas_test_2 extends Applet pu

32、blic void init() setLayout(new BorderLayout(); add(North, new Button(button1); add(South, new Button(button2); add(West, new Button(button3); add(East, new Button(button4); public void paint(Graphics g) g.setColor(Color.red); g.fillRect(0,0,50,100); g.setColor(Color.blue); g.fillRect(30,0,100,40);44

33、5.6 各種構(gòu)件的應(yīng)用實(shí)例各種構(gòu)件的應(yīng)用實(shí)例-Canvasimport java.awt.*; import java.applet.*;public class canvas_test extends Applet MyCanvas mycanvas=new MyCanvas();public void init() setLayout(new BorderLayout(); add(Center,mycanvas); add(North,new Button(button1); .; add(East,new Button(button4); 455.6 各種構(gòu)件的應(yīng)用實(shí)例各種構(gòu)件的應(yīng)用實(shí)

34、例-Canvasclass MyCanvas extends Canvas public void paint(Graphics g) g.setColor(Color.red); g.fillRect(0,0,50,100); g.setColor(Color.blue); g.fillRect(30,0,100,40); 465.6 各種構(gòu)件的應(yīng)用實(shí)例各種構(gòu)件的應(yīng)用實(shí)例-Canvas47利用輸出管理利用輸出管理器按鈕和畫布器按鈕和畫布按鈕接收按鈕接收鼠標(biāo)事件鼠標(biāo)事件變換顏色變換顏色執(zhí)行重畫執(zhí)行重畫colorcolorcolor5.6 各種構(gòu)件的應(yīng)用實(shí)例各種構(gòu)件的應(yīng)用實(shí)例-Canvas4例例

35、:按動(dòng)鼠標(biāo)改變畫布的顏色按動(dòng)鼠標(biāo)改變畫布的顏色(CanvasApplet)4有哪些類有哪些類? Canvas, Button, Color;4哪些方法哪些方法? init(), action(),swapColor(),paint()48class CanvasApplet extends Applet MyCanvas mycanvas=new MyCanvas(); public void init() setLayout(new BorderLayout(); Button button = new Button(Color); add(North,button); add(“Cente

36、r”,mycanvas); resize(200,250); 5.6 各種構(gòu)件的應(yīng)用實(shí)例各種構(gòu)件的應(yīng)用實(shí)例-Canvas.495.6 各種構(gòu)件的應(yīng)用實(shí)例各種構(gòu)件的應(yīng)用實(shí)例-Canvas4boolean action(Event evt, Object arg)44 if(arg=Color) mycanvas.swapColor();4 return true;4505.6 各種構(gòu)件的應(yīng)用實(shí)例各種構(gòu)件的應(yīng)用實(shí)例-Canvasclass MyCanvas extends Canvas Color color; MyCanvas() color=Color.red; public void pai

37、nt(Graphics g) g.setColor(color); g.fillRect(20,20,100,100); g.setColor(color.white); g.drawString(CANVAS,40,40); public void swapColor() if(color=Color.black) color=Color.red; else if(color=Color.red) color=Color.green; else color=Color.black; repaint(); .515.6 各種構(gòu)件的應(yīng)用實(shí)例各種構(gòu)件的應(yīng)用實(shí)例-Frame45.6.3 Frame類

38、類4功能功能 : 制作一般的獨(dú)立窗口制作一般的獨(dú)立窗口,它是構(gòu)件容器它是構(gòu)件容器4創(chuàng)建創(chuàng)建4 Frame fmInstance=new Frame();4或或 Frame fmInstance=4 new Frame(“The window for test”);4將其顯示到屏幕上將其顯示到屏幕上4 fmInstance.show()4注意注意:不用不用add()525.6 各種構(gòu)件的應(yīng)用實(shí)例各種構(gòu)件的應(yīng)用實(shí)例-Frame4常用的方法常用的方法4 dispose,getCursorType,getIconImage,4 getMenuBar,getTitle,isResizable,4 set

39、Cursor,setIconImage,setMenuBar,4 setResizable,setTitle4窗口的相關(guān)事件窗口的相關(guān)事件:4Event.WINDOW_DEICONIFY,4 _DESTROY4 _EXPOSE, 4 _ICONIFY, 4 _MOVED535.6 各種構(gòu)件的應(yīng)用實(shí)例各種構(gòu)件的應(yīng)用實(shí)例-Frame4例例:創(chuàng)建一個(gè)窗口創(chuàng)建一個(gè)窗口,并用按鈕控制它的顯示或并用按鈕控制它的顯示或4隱藏隱藏 FrameAppletFrame WindowThis is CustomFrame windowShow windowhide windowShow window545.6 各種

40、構(gòu)件的應(yīng)用實(shí)例各種構(gòu)件的應(yīng)用實(shí)例-Frame4在在applet中中action處理處理Button的事件的事件action捕獲捕獲buttonFrame.showFrame.hidebutton.label is showbutton.label is hide555.6 各種構(gòu)件的應(yīng)用實(shí)例各種構(gòu)件的應(yīng)用實(shí)例-Frame4.Frame WindowThis is CustomFrame window為了將字符顯為了將字符顯示在自定義窗示在自定義窗口中口中,包含輸出包含輸出語(yǔ)句的方法必語(yǔ)句的方法必須在自定義的須在自定義的窗口類中窗口類中關(guān)閉窗口的事件在窗口類本身處理關(guān)閉窗口的事件在窗口類本身處理

41、.注注: 處理窗口中的事件用處理窗口中的事件用handelEvent()public boolean handleEvent(Event evt) switch(evt.id) case Event.WINDOW_DESTROY:dispose();System.exit(0);default: return super.handleEvent(evt); 565.6 各種構(gòu)件的應(yīng)用實(shí)例各種構(gòu)件的應(yīng)用實(shí)例-Framepublic class FrameApplet extends Applet CustomFrame frame; Button button; public void init

42、() frame=new CustomFrame (Custom Frame Window); button=new Button(Show Window); add(button); public boolean action(Event evt, Object arg) boolean visible=frame.isShowing(); if(visible) frame.hide(); button.setLabel(Show window); else frame.show();button.setLabel(Hide Window); return true; 575.6 各種構(gòu)件

43、的應(yīng)用實(shí)例各種構(gòu)件的應(yīng)用實(shí)例-Frameclass CustomFrame extends Frame CustomFrame(String title) super(title); public boolean handleEvent(Event evt) switch(evt.id) case Event.WINDOW_DESTROY:dispose();System.exit(0);default: return super.handleEvent(evt); public void paint(Graphics g) resize(200,100); g.drawString(this

44、 is a custom window.,30,30); 58button2button1Button1 10button2 1button2button1Button1 0button2 75.6 各種構(gòu)件的應(yīng)用實(shí)例各種構(gòu)件的應(yīng)用實(shí)例-Frame4多窗口多窗口(FrameAppletButtonsFrames.class-f1.bat)595.6 各種構(gòu)件的應(yīng)用實(shí)例各種構(gòu)件的應(yīng)用實(shí)例-Frame1.一個(gè)窗口類創(chuàng)建兩個(gè)實(shí)例一個(gè)窗口類創(chuàng)建兩個(gè)實(shí)例2.由于有不同的事件發(fā)生由于有不同的事件發(fā)生(按鈕按鈕,關(guān)窗口關(guān)窗口),因此事件因此事件先由通用事件處理程序來(lái)接收先由通用事件處理程序來(lái)接收,然后再根據(jù)

45、情況然后再根據(jù)情況做相應(yīng)的處理做相應(yīng)的處理.switch(evt.id) case Event.WINDOW_DESTROY: dispose(); return true; case Event.ACTION_EVENT: return action(evt, evt.arg); default: return super.handleEvent(evt);605.6 各種構(gòu)件的應(yīng)用實(shí)例各種構(gòu)件的應(yīng)用實(shí)例-Frame43. 任何時(shí)候只有一個(gè)窗口是活動(dòng)的任何時(shí)候只有一個(gè)窗口是活動(dòng)的(active)的因的因此不必考慮那個(gè)判斷是哪一個(gè)窗口發(fā)生的事件此不必考慮那個(gè)判斷是哪一個(gè)窗口發(fā)生的事件44.一般

46、的結(jié)構(gòu)一般的結(jié)構(gòu)4在在main()中中,只做與窗口有關(guān)的事情只做與窗口有關(guān)的事情:創(chuàng)建窗口創(chuàng)建窗口,顯示窗口顯示窗口4在構(gòu)造方法中在構(gòu)造方法中,安排窗口中的構(gòu)件安排窗口中的構(gòu)件615.6 各種構(gòu)件的應(yīng)用實(shí)例各種構(gòu)件的應(yīng)用實(shí)例-Frameimport java.awt.*;class ButtonsInFrames extends Frame int a1=0,a2=0;public static void main(String args) ButtonsInFrames myframe1=new ButtonsInFrames(); myframe1.setTitle(Button in F

47、rame1); myframe1.resize(200,200); myframe1.show(); ButtonsInFrames myframe2=new ButtonsInFrames(); myframe2.setTitle(Button in Frame2); myframe2.resize(200,200); myframe2.show(); 625.6 各種構(gòu)件的應(yīng)用實(shí)例各種構(gòu)件的應(yīng)用實(shí)例-FrameButtonsInFrames() setLayout(new BorderLayout(); Button b1=new Button(Button1); Button b2=ne

48、w Button(Button2); add(North,b1);add(South,b2);public boolean handleEvent(Event evt) switch(evt.id) case Event.WINDOW_DESTROY: dispose(); return true; case Event.ACTION_EVENT: return action(evt, evt.arg);default: return super.handleEvent(evt);635.6 各種構(gòu)件的應(yīng)用實(shí)例各種構(gòu)件的應(yīng)用實(shí)例-Frame4public boolean action(Even

49、t evt, Object arg)4if(evt.target instanceof Button)4if(arg=Button1)a1+; else a2+;4repaint();4return true;44public void paint(Graphics g)4g.drawString(button1 +a1,5,80);4g.drawString(button2 +a2,5,100);4.64FontDisplayerFontDisplay!You can input something here.ArialCourier NewTimes New Roman1820222426

50、Courier New225.6 各種構(gòu)件的應(yīng)用實(shí)例各種構(gòu)件的應(yīng)用實(shí)例-練習(xí)練習(xí)與與List類有關(guān)的事件類有關(guān)的事件Event.LIST_DESELECT,Event.LIST_SELECT 例例:(FontDisplay.class-f3.bat)public boolean handleEvent(Event evt) switch(evt.id) case Event.WINDOW_DESTROY: dispose(); System.exit(0); default: return super.handleEvent(evt); .handleEventWINDOW_DESTROYha

51、ndleEventLIST_SELECTaddFrame類類Panel類類TextArea類類ListListaddaddaddaraearea.setfont(字型字型, 字體字體,字號(hào)字號(hào))655.6 各種構(gòu)件的應(yīng)用實(shí)例各種構(gòu)件的應(yīng)用實(shí)例-練習(xí)練習(xí)import java.awt.*;class FontDisplay extends Frame TextArea FontShower;public static void main(String args)FontDisplay myFrame=new FontDisplay();myFrame.setTitle(FontDisplayer

52、);myFrame.resize(450,300);myFrame.show(); public FontDisplay() setLayout(new BorderLayout(5,5); FontShower=new TextArea(Font Display! ”); add(West, new FontPanel(FontShower); add(Center,FontShower);66對(duì)窗口來(lái)說(shuō)只有一個(gè)事件對(duì)窗口來(lái)說(shuō)只有一個(gè)事件5.6 各種構(gòu)件的應(yīng)用實(shí)例各種構(gòu)件的應(yīng)用實(shí)例-練習(xí)練習(xí)public boolean handleEvent(Event evt) switch(evt.id) case Event.WINDOW_DESTROY: dispose(); System.exit(0); default: return super.handleEvent(evt);67對(duì)右邊的文本區(qū)設(shè)置屬性對(duì)右邊的文本區(qū)設(shè)置屬性,利用引用傳遞利用引用傳遞.得到列表選項(xiàng)用得到列表選項(xiàng)用getItem事件處理用用事件處理用用handleEvent,得到兩個(gè)參

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論