




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
2023/1/111Java程序設(shè)計及應用開發(fā)教程主編:虞益誠E-mail:yuyich@教學課件Java程序設(shè)計及應用開發(fā)教程構(gòu)架Java語言以其面向?qū)ο笮?、可重用性、平臺無關(guān)性、多線程、安全可靠等特性成為網(wǎng)絡(luò)程序設(shè)計中的佼佼者,受到廣泛的青睞三大模塊Java概述與語言基礎(chǔ)Java異常處理圖形用戶界面編程Java線程機制與AppletJavaJava應用開發(fā)與課程設(shè)計實例教參Java流程控制及數(shù)組與字符串高級GUI設(shè)計技術(shù)輸入輸出流Java網(wǎng)絡(luò)編程基礎(chǔ)Java數(shù)據(jù)庫連接第13-15
章
應用開發(fā)篇
第1-6
章基礎(chǔ)知識篇
第7-12章程序設(shè)計篇
面向?qū)ο蟪绦蛟O(shè)計和繼承與多態(tài)2023/1/11第8章圖形用戶界面編程3第8章圖形用戶界面編程8.1組件概述8.2AWT圖形化界面基礎(chǔ)8.3事件處理機制8.4本章小結(jié)
圖形用戶界面是為應用程序提供一個圖形化的界面,通過它用戶和程序之間可以方便地進行交互,完成應用程序使用中的數(shù)據(jù)輸入與輸出等操作任務(wù)。本章主要講述了容器AWT組件(包括:Frame、Panel、Button、Label、文本框與文本域、復選框與單選按鈕、下拉列表與列表、Dialog與Canvas畫布等),同時介紹了事件處理機制及其諸多事件等。
2023/1/11第8章圖形用戶界面編程48.1組件概述設(shè)計和實現(xiàn)圖形用戶界面的設(shè)計的主要任務(wù)包括如下兩個層次:創(chuàng)建組成界面的各成分和元素,指定它們的屬性和位置關(guān)系,根據(jù)具體需要布局排列,從而構(gòu)成完整的圖形用戶界面的外觀表象。定義圖形用戶界面的事件和各界面元素所對不同事件的響應,從而實現(xiàn)圖形用戶界面與用戶間的交互功能。8.1.1組件Java圖形用戶界面最基本的組成部分是組件,組件是一個可以以圖形化方式顯示于屏幕上與用戶進行交互的對象。如:按鈕(button)等。8.1.2容器容器(Container)實際上是ComPonent的子類,由Container類的子類和間接子類創(chuàng)建的對象均稱為容器,可以通過add()等方法向容器添加組件,容器本身也是組件,因此可以把一個容器添加到另一個容器中實現(xiàn)容器的嵌套,它具有組件的所有性質(zhì)。Java中AWT與Swing組件各含有3類常用的容器,前者為Frame、Panel和Applet,后者是JFrame、JPanel、Japplet,Swing同時還有JScrollPane(滾動窗格)、JSplitPane(拆分窗格)和JLayeredPane(分層窗格)。2023/1/11第8章圖形用戶界面編程58.1組件概述8.1.3AWT組件抽象窗口工具包AWT(AbstractWindowToolkit)可用于Java的applet和applications中,支持圖形用戶界面編程的功能,包括:用戶界面組件、事件處理模型;圖形和圖像工具,包括形狀、顏色和字體類;布局管理器,可以進行靈活的窗口布局而與特定窗口的尺寸和屏幕分辨率無關(guān);數(shù)據(jù)傳送類,可以通過本地平臺的剪貼板來進行剪切和粘貼。JDK1.2新增加了一個javax.swing包,該包提供了功能更為強大的用來設(shè)計GUI界面的類。由java.awt包中的類創(chuàng)建的組件習慣上稱為重組件。8.1.4Swing組件Swing是使用AWT作為基礎(chǔ)構(gòu)建起來的的,Javax.swing包為我們提供了更加豐富的、功能強大的Swing組件,其中大部分組件是輕組件,沒有同位體。它的大多數(shù)組件都是AWT組件名前面加一個“J”,Swing的用法與AWT基本相同,它也使用AWT的事件處理機制,只是組件的風格不同與名字變了,所包含的包也不同(Swing的組件主要包含在javax.swing包中),同時還增加了一些原來沒有的特性。例如,一個按鈕可以有與之相關(guān)聯(lián)的一幅圖像和一個字符串,這幅圖像還可以根據(jù)按鈕狀態(tài)的變化而更換。2023/1/11第8章圖形用戶界面編程68.1組件概述Swing組件無需同位體,故稱之為輕組件。Javax.swing包中JComponent(輕組件)類是java.awt包中Container類的一個直接子類、Componenet類的一個間接子類。Javax.swing包中的JFame類和JDialog類分別是java.awt包中Frame類和Dialog類的直接子類、Window類的間接子類。在Java中必須理解容器和組件兩個基本概念:Java把由Component類的子類或間接子類創(chuàng)建的對象稱為一個組件。Java把由Container的子類或間接子類創(chuàng)建的對象稱為一個容器。可以向容器添加組件。Container類提供了一個public方法add(),一個容器可以調(diào)用這個方法將組件添加到該容器中。調(diào)用removeAl()方法可以移掉容器中的全部組件,調(diào)用remove(Componentc)方法可以移掉容器中參數(shù)指定的組件。每當容器添加新的組件或移掉組件時,應該讓容器調(diào)用validate()方法,以保證容器中的組件能正確顯示出來。
8.1.5Swing與AWT的區(qū)別:
Swing組件全部是由純Java編寫的,功能強大。AWT是由JDK1.0和JDK1.1平臺提供的;Swing所有組件都以J開頭:Jbutton、Jpanel等;Swing使用的包是:Javax.Swing;AWT使用的包為:Java.awt圖8-1java.awt包中常用類及其類間繼承關(guān)系2023/1/11第8章圖形用戶界面編程88.2AWT圖形化界面基礎(chǔ)
8.2.1Frame框架Frame組件在Java的頂層窗口中可以獨立使用,它融含標題、邊框,尚可加入菜單重置大小等。當Frame被關(guān)閉,將產(chǎn)生WindowEvent事件,F(xiàn)rame無法直接監(jiān)聽鍵盤輸入事件。Frame類包括構(gòu)造方法與一般常用類方法,如表8-1所示。此外還可使用setBackground(Colorc)設(shè)置組件的背景色。SetBounds(intx,inty,intwidth,intheight)可設(shè)置組件在容器中的坐標(x,y),組件的寬度為width,高度為height。這些方法可設(shè)置Frame對象的屬性。
2023/1/11第8章圖形用戶界面編程98.2AWT圖形化界面基礎(chǔ)
【例8-2】創(chuàng)建一個帶窗口圖標的Frame類框架。importjava.awt.*;importjavax.swing.ImageIcon;classWindowyu{staticFramef=newFrame("這是個背景紅色的框架程序"); staticImageIconicon=newImageIcon("BOOK1.JPG");//創(chuàng)建icon對象publicstaticvoidmain(Stringargs[]) { f.setBounds(0,0,200,100); f.setBackground(Color.red);//框架背景顏色
f.setIconImage(icon.getImage());//將icon對象設(shè)置為窗口圖標
f.show();} //顯示窗口
}//程序運行結(jié)果如圖8-4所示。2023/1/11第8章圖形用戶界面編程108.2.2Panel面板
Panel面板類為Container類的子類,也是一種容器,可容納其他組件(使用add()方法可將其他容器添加到Panel容器),但不是頂層窗口,因而不能獨立存在。Panel類方法如表8-2所示。
8.2.3Button按鈕按鈕(Button)是java程序圖形界面設(shè)計中最常用的一個組件,是可提供用戶快速啟動某一動作的類?!纠?-4】創(chuàng)建按鈕。
按鈕的創(chuàng)建方法舉例如下:ButtonNbutton=newButton(“按鈕標簽”);8.2AWT圖形化界面基礎(chǔ)2023/1/11第8章圖形用戶界面編程118.2.4Label標簽
標簽(Label)被稱為標簽組件,是一種用來顯示說明性的靜態(tài)文本的組件。標簽是用戶只能查看而不能簡單地修改其內(nèi)容的文本顯示區(qū)域,標簽創(chuàng)建方法為:Labelprompt=newLabel(“請輸入標簽說明信息:”);【例8-5】在窗口給定位置創(chuàng)建一個標簽。8.2.5文本框與文本域
文本框(TextField)又稱單行文本輸入域,多用于單行顯示,當按下回車鍵時會發(fā)生事件(ActionEvent),可以通過ActionListener中的actionPerformed()方法對事件進行相應處理,可以使用setEditable(boolean)方法設(shè)置為只讀屬性。而文本域TextArea是多行文本組件,用于顯示程序中的多行文本信息。
8.2AWT圖形化界面基礎(chǔ)2023/1/11第8章圖形用戶界面編程12創(chuàng)建文本框:TextFieldtf=newTextField("Hello!",30);創(chuàng)建文本域:TextAreatextArea1=newTextArea(“編輯文本”,10,45);
【例8-6】創(chuàng)建文本框與文本域信息。
8.2AWT圖形化界面基礎(chǔ)2023/1/11第8章圖形用戶界面編程138.2.5文本框與文本域:例8-6importjava.awt.*;publicclassLogin{publicstaticvoidmain(Stringarg[]){Framef=newFrame("UserLogin");f.setBounds(0,0,400,300);//定位f.setBackground(Color.lightGray);//布局
Labell1=newLabel("用戶:");//創(chuàng)建標簽
TextFieldte1=newTextField("user1",20);//創(chuàng)建文本行
Labell2=newLabel("口令:");TextFieldte2=newTextField(20);//創(chuàng)建20列的文本行
Buttonb1=newButton("確認");Buttonb2=newButton("取消");//創(chuàng)建按鈕TextAreata=newTextArea("編輯工資管理程序的文本信息",5,20);//創(chuàng)建文本域
f.setLayout(null);//關(guān)閉布局設(shè)置
l1.setBounds(50,50,50,20);te1.setBounds(100,50,180,20);l2.setBounds(50,80,50,20);te2.setBounds(100,80,180,20);b1.setBounds(70,110,50,20);b2.setBounds(200,110,50,20);ta.setBounds(50,140,230,80);f.add(l1);//在窗口框架中添加文本框、文本域等一系列對象
f.add(te1);f.add(l2);f.add(te2);f.add(b1);f.add(b2);f.add(ta);f.setVisible(true);}
2023/1/11第8章圖形用戶界面編程148.2AWT8.2.6復選框與單選按鈕復選框又稱為檢測盒,用Checkbox類的對象表示,Checkbox由一個方形的選擇區(qū)和一個標簽組成,它有選中和未選中兩種狀態(tài),可調(diào)用getState(),若復選按鈕被選中,則返回true,否則返回false。創(chuàng)建復選框:Checkboxchbox=newCheckbox(“個人愛好”);單選按鈕和復選框很類似,所不同的是:單獨使用復選框類實現(xiàn)多項選擇,而放入一個復選框組(CheckboxGroup)中時,構(gòu)成一組單選按鈕,實現(xiàn)單項選擇。單選按鈕和復選框一樣,也觸發(fā)ItemEvent事件。
【例8-7】創(chuàng)建復選框與單選按鈕。
2023/1/11第8章圖形用戶界面編程15復選框與單選按鈕例8-7: importjava.awt.*;publicclassChebox{publicstaticvoidmain(Stringarg[]){Framef=newFrame("單復選實例");Checkboxcb1=newCheckbox("系統(tǒng)管理員",true);//創(chuàng)建復選框
Checkboxcb2=newCheckbox("管理員",false);CheckboxGroupchg=newCheckboxGroup();Checkboxcb3=newCheckbox("系統(tǒng)用戶",chg,true);Checkboxcb4=newCheckbox("普通用戶",chg,false); //創(chuàng)建CheckboxGroupchg的Checkbox下兩個cb3、cb4對象構(gòu)成單選按鈕
f.setLayout(null);cb1.setBounds(50,40,140,20);//關(guān)閉布局設(shè)置與復選框定位
cb2.setBounds(50,60,140,20);cb3.setBounds(50,80,140,20);//單選按鈕定位
cb4.setBounds(50,100,140,20);f.add(cb1);//標簽添加到面板上
f.add(cb2);f.add(cb3);f.add(cb4);f.setSize(200,150);//設(shè)置大小尺寸
f.setVisible(true);}}
2023/1/11第8章圖形用戶界面編程168.2AWT8.2.7Choice下拉列表
下拉列表(Choice)提供一個彈出式的菜單讓用戶選擇,是“多選一”的輸入界面,所有選項被折疊起來,只顯示最前面的或是用戶所選擇的那一項,Choice用ItemListener接口來進行監(jiān)聽。創(chuàng)建下拉列表包括創(chuàng)建和添加選項兩個步驟:如:Choiceyuchoice=newChoice();//創(chuàng)建下拉列表yuchoice.add(“計算機”);//為下拉列表添加選項yuchoice.add(“數(shù)據(jù)庫”);yuchoice.add(“網(wǎng)格技術(shù)”);
2023/1/11第8章圖形用戶界面編程178.2AWT8.2.8List列表列表(List)是把所有供用戶選擇的項都顯示出來以供選擇,列表可以實現(xiàn)“多選多“,即允許復選,列表支持滾動條,可以同時瀏覽多項。列表可以產(chǎn)生兩種事件:當用戶單擊列表中的某一個選項并選中它時,將產(chǎn)生ItemEvent類的選擇事件;當用戶雙擊列表中的某個選項時,將產(chǎn)生ActionEvent類的動作事件。若希望對這兩種事件都做出響應,就要把列表分別注冊給ItemEvent的監(jiān)聽者ItemListener和ActionEvent的監(jiān)聽者ActionListener。創(chuàng)建列表(List)的方法實例如下:ListMyList=newList(4,true);MyList.add(“北京”);MyList.add(“上海”);MyList.add(“天津”);
2023/1/11第8章圖形用戶界面編程18【例8-8】下拉列表與列表的創(chuàng)建和使用。
importjava.awt.*;importjava.awt.event.*;publicclassChoiceList{ privateChoiceList() { Framef=newFrame("下拉列表與列表的創(chuàng)建和使用"); f.setLayout(newGridLayout(2,3,25,25)); Choicech=newChoice(); //創(chuàng)建下拉列表
ch.addItem(“計算機”);ch.addItem(“數(shù)據(jù)庫”);//添加對象
ch.addItem(“二叉樹”);f.add(ch);//添加下拉列表對象
Listlt=newList(5);lt.addItem(“工人”);//創(chuàng)建列表與添加對象
lt.addItem(“農(nóng)民”);lt.addItem(“軍人”);lt.addItem(“畫家”);//添加對象
f.add(lt); //添加列表對象
f.setSize(250,150);//設(shè)置大小尺寸
f.setVisible(true); } publicstaticvoidmain(Stringarg[]) { ChoiceListcl=newChoiceList();}
}2023/1/11第8章圖形用戶界面編程198.2AWT8.2.9Dialog對話框?qū)υ捒颍―ialog)與Frame類似,是有邊框、有標題而獨立存在的容器,但是Dialog不能作為程序的最外層容器,也不能包含菜單欄。Dialog必須隸屬于一個Frame并由這個Frame負責彈出。Dialog可被設(shè)置為總是在激活窗口的最前面的模式窗口,即若其不關(guān)閉,則不能對其它窗口進行操作。通常Dialog又可起到與用戶交互對話窗口作用,創(chuàng)建對話框:Dialogd=newDialog(f,"確認對話框,OK",false);【例8-9】對話框的創(chuàng)建與運行。
2023/1/11第8章圖形用戶界面編程208.3事件處理機制
8.2.10Canvas畫布
對話框(Dialog)與Frame類似,是有邊框、有標題而獨立存在的容器,但是Dialog不能作為程序的最外層容器,也不能包含菜單欄。Dialog必須隸屬于一個Frame并由這個Frame負責彈出。畫布(Canvas)代表屏幕上一塊空白的矩形區(qū)域,它不是容器,而是一個可以在這里繪畫,也可捕獲用戶操作,產(chǎn)生相應事件要在程序中實現(xiàn)KeyListener、MouseListener、MouseMotionListener等接口,從而讓程序?qū)τ脩舨僮髯鞒鲰憫?。用戶要?chuàng)建自己的畫布對象的常用方法是繼承Canvas類,并且覆蓋Canvas類的paint()方法來繪制畫布的圖形。畫布Canvas類構(gòu)造方法的語句格式為:publicCanvas();【例8-10】畫布:Canvas程序設(shè)計實例
8.3事件處理機制8.3.1事件處理基礎(chǔ)
在設(shè)計和實現(xiàn)圖形用戶界面的交互過程中,主要是完成兩大任務(wù):其一是創(chuàng)建窗口并在窗口中添加各種組件,規(guī)劃組件在窗口中的位置和相關(guān)屬性,構(gòu)成圖形用戶界面的外觀效果;其二為設(shè)置各類組件對不同事件的響應,從而執(zhí)行用戶在用戶界面所實施的交互行為。2023/1/11第8章圖形用戶界面編程218.3事件處理機制事件及其處理機制如果用戶在用戶界面執(zhí)行了一個動作,這將導致一個事件的發(fā)生。事件是描述用戶所執(zhí)行的一個操作,所產(chǎn)生的一個行為。三個主要概念:事件、事件源、事件處理方法
事件的接口及方法事件監(jiān)聽器(或謂監(jiān)視器或處理者)通常是一個類,每一個事件類都有一個對應的事件處理接口。例如,處理鍵盤輸入事件“KeyEvent”類的接口為“KeyListener”
接口,監(jiān)聽器是接口,又稱監(jiān)聽器接口。2023/1/11第8章圖形用戶界面編程222023/1/11第8章圖形用戶界面編程238.3事件處理機制3.事件處理主要步驟通常,處理的主要步驟如下(設(shè)表8-11所示某事件為XxxEvent):選擇組件作為事件源,不同類型的組件會產(chǎn)生特定類型的事件。定義要接收并處理某種類型的事件XxxEvent,注冊相應的事件監(jiān)聽器類。通過調(diào)用組件方法:eventSourceObject.addXxxListener(XxxListener)方法向組件注冊事件監(jiān)聽器。實現(xiàn)XxxListener類的實例對象,據(jù)此可作為事件的監(jiān)聽器對象。注冊與注銷監(jiān)聽器??杀硎龀蔀槿缦聝煞N形式:注冊監(jiān)聽器:publicvoidadd<ListenerType>(<ListenerType>listener);銷監(jiān)聽器:publicvoidremove<ListenerType>(<ListenerType>listener);事件源通過實例化事件類激發(fā)并產(chǎn)生事件,事件將被傳送給已注冊的一個或多個監(jiān)聽器。事件監(jiān)聽器在接收到激發(fā)事件信號后負責實現(xiàn)相應的事件處理方法。8.3.2鍵盤事件
當用戶使用鍵盤上一個鍵進行操作時,就導致這個組件觸發(fā)KeyEvent事件,監(jiān)聽器要完成對事件的響應,就要實現(xiàn)KeyListener接口程序中要添加如下語句:importjava.awt.event.*。并實現(xiàn)KeyListener接口,將鍵盤注冊給監(jiān)聽器:eventSourceObject.addKeyListener(listener)。用KeyEvent類的getKeyCode()方法可以判斷哪個鍵被按下、點擊或釋放并獲取其鍵碼值,getKeyChar()方法被按下鍵的字符。2023/1/11第8章圖形用戶界面編程248.3.2鍵盤事件
鍵盤事件相關(guān)方法可參閱表8-11與表8-12。1.簡單鍵盤事件的使用組件使用addKeyListener()方法獲得監(jiān)視器。監(jiān)視器是一個對象,創(chuàng)建該對象的類必然通過方法:publicvoidkeyPressed(KeyEvente),publicvoidkeyTyped(KeyEvente)和publicvoidKeyReleased(KeyEvente)實現(xiàn)接口。2023/1/11第8章圖形用戶界面編程258.3.3文本事件
當按下鍵盤上某個鍵時,監(jiān)視器就會感知自動執(zhí)行keyPressed()方法,且KeyEvent類自動創(chuàng)建一個對象傳遞給方法keyPressed()中的參數(shù)e。方法keyTyped()是keyPressed()和keyReleased()方法的組合。當鍵被按下又釋放時,keyTyped()方法被調(diào)用。值(如用KeyEvent類的getKeyCode()方法可判斷按下或釋放的鍵及返回一個鍵碼,(如表8-13所示)。2.復合鍵盤事件的使用鍵盤事件KeyEvent類對象可調(diào)用getModifiers()方法返回下列InputEvent類常量CTRL_MASK、ALT_MASK、SHIFT_MASK的整數(shù)值,程序可根據(jù)getModifiers()返回的復合鍵值處理事件。如,對于KeyEvent對象e。當使用CTRL+C復合鍵時,下面的邏輯表達式為true:e.getModifiers()==InputEvent.CTRL_MASK&&e.getKeyCode()==KeyEvent.VK_C
【例8-11】鍵盤事件的創(chuàng)建與響應實例。
8.3.3文本事件文本框TextField或文本域TextArea信息發(fā)生改變時,產(chǎn)生TextEvent文本事件。要使程序能響應并處理TextEvent事件,要實現(xiàn)TextListener接口,應將TextEvent事件注冊給監(jiān)聽器:publicvoidaddTextListener(Listener),并實現(xiàn)TextListener接口中的textValueChanged(TextEvent)方法。【例8-13】文本事件程序設(shè)計實例。
2023/1/11第8章圖形用戶界面編程268.3.4鼠標事件當鼠標鍵被按下、釋放、單擊、移動、拖動時會產(chǎn)生MouseEvent鼠標事件,為響應并處理該事件,可通過java.awt.evten包中的MouseListener,MouseMotionListener實現(xiàn)接口。鼠標事件的類型是MouseEvent,組件觸發(fā)鼠標事件時MouseEvent類自動創(chuàng)建一個事件對象。Java使用MouseListener與MouseMotionListener兩接口來處理鼠標事件。1.MouseListener接口MouseListener接口事件源使用addMouseListener(MouseListenerListener)方法獲取監(jiān)視器,用戶可通過4種操作使得事件源觸發(fā)鼠標事件。2.MouseMotionListerner接口
MouseMotionListerner接口事件源使用方法addMouseMotionListener和(MouseMotionList-enerListener)獲取監(jiān)視器,用戶通過2種操作使得事件源觸發(fā)鼠標事件。由于處理鼠標事件的接口中的方法較多,Java提供了相應的適配器類MouseAdapter和MouseMotionAdapter,據(jù)此分別實現(xiàn)了MouseListener接口和MouseMotionListener接口。當處理鼠標事件時,程序經(jīng)常關(guān)心鼠標在當前組件坐標系中的位置,以及觸發(fā)鼠標事件使用的是鼠標的左鍵或右鍵等信息。鼠標事件及其相關(guān)方法可仔細參閱表8-11與表8-14。3.獲取鼠標在系統(tǒng)桌面上的坐標4.彈出式菜單
2023/1/11第8章圖形用戶界面編程278.3.5窗口事件當一個窗口(Jframe或Frame)被激活、撤銷、打開、關(guān)閉、圖標化等操作時,就引發(fā)了窗口事件(WindowEvent)并創(chuàng)建一個窗口事件對象,JFrame類是Window類的子類,Window對象都能觸發(fā)WindowEvent事件。窗口使用addWindowlistener()方法獲得監(jiān)視器且創(chuàng)建其類對象,可調(diào)用getWindow()方法以獲取發(fā)生窗口事件的窗口,實現(xiàn)WindowListener接口,該接口中有7個不同的方法,詳細見表8-11。當單擊窗口的圖標化按鈕時,監(jiān)視器調(diào)用WindowIconified()方法后,還將調(diào)用WindowDeactivated()方法。當撤銷窗口圖標化時,監(jiān)視器調(diào)用WindowDeiconified()方法后還會調(diào)用WindowActivated()方法?!纠?-15】窗口事件的創(chuàng)建與響應實例。
8.3.6焦點事件如表8-11所示,組件對象可以觸發(fā)焦點事件,當組件具有焦點監(jiān)視器后,如果組件從無輸入焦點變成有輸入焦點或從有輸入焦點變成無輸入焦點都會觸發(fā)FocusEvent事件。組件增加焦點事件監(jiān)視器可以使用方法:publicvoidaddFocusListener(FocusListenerListener)。創(chuàng)建監(jiān)視器的類必須實現(xiàn)FocusListener接口,一個組件可以調(diào)用:publicbooleanrequestFocusInWindow()方法獲得輸入焦點。當組件從無輸入焦點變成有輸入焦點觸發(fā)焦點事件時,監(jiān)視器調(diào)用類實現(xiàn)接口Focusgained(FocusEvente)方法;當組件從有輸入焦點變成無輸入焦點觸發(fā)事件時,監(jiān)視器調(diào)用類實現(xiàn)接口FocusLost(FocusEvente)方法。【例8-16】焦點事件的創(chuàng)建與響應實例。2023/1/11第8章圖形用戶界面編程288.3.7事件適配器3.事件處理主要步驟為簡化編程,Java針對大多數(shù)事件監(jiān)聽器接口定義了相應的已經(jīng)實現(xiàn)了接口功能的實現(xiàn)類:事件適配器。引入事件適配器的宗旨是使監(jiān)聽器的創(chuàng)建變得更加簡便。在適配器類中系統(tǒng)自動實現(xiàn)相應監(jiān)聽器接口中所有的方法(只寫出空的方法體),但不做任何事情。編程時定義繼承事件適配器類的監(jiān)聽器,只重寫需要的方法。如Java在提供WindowListener接口的同時,又提供了WindowAdapter類,該類實現(xiàn)了WindowListener類接口。因此,可使用WindowAdapte的子類創(chuàng)建的對象作為監(jiān)視器,在子類中重寫所需要的接口方法即可。常用的事件適配器類有:1
KeyAdapter:鍵盤事件適配器;1
MouseAdapter:鼠標事件適配器;1
MouseMotionAdapter:鼠標運行事件適配器;1
WindowAdapter:窗口事件適配器;1
FocusAdapter:焦點事件適配器;1
ComponentAdapter:組件事件適配器;1
ContainerAdapter:容器事件適配器;【例8-17】基于事件處理適配器的窗口關(guān)閉事
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 漁船租賃業(yè)務(wù)合同協(xié)議
- 銀行信托計劃保管合同模板
- 供港農(nóng)產(chǎn)品購銷合同代理協(xié)議(樣本)
- 國有林權(quán)出讓合同
- 畢業(yè)生實習與勞動合同解析
- 渠道合作銷售合同范本
- 合同法視角:股東不履行義務(wù)糾紛案例分析
- 新車銷售團隊心理素質(zhì)訓練考核試卷
- 木制拼圖游戲考核試卷
- 世界音樂教育項目的策劃與實施考核試卷
- 部編版小學(2024版)小學道德與法治一年級下冊《有個新目標》-第一課時教學課件
- 稅法(第5版) 課件 第13章 印花稅
- 建加油站申請書
- 2024-2025學年廣州市高二語文上學期期末考試卷附答案解析
- 咖啡店合同咖啡店合作經(jīng)營協(xié)議
- 2025年山東鋁業(yè)職業(yè)學院高職單招職業(yè)技能測試近5年??及鎱⒖碱}庫含答案解析
- 全套電子課件:技能成就夢想
- 2024年教育公共基礎(chǔ)知識筆記
- 2025年江蘇農(nóng)林職業(yè)技術(shù)學院高職單招職業(yè)技能測試近5年??及鎱⒖碱}庫含答案解析
- 異構(gòu)數(shù)據(jù)融合技術(shù)-深度研究
- 北京市朝陽區(qū)2024-2025學年七年級上學期期末考試數(shù)學試卷(含答案)
評論
0/150
提交評論