![圖形用戶界面設(shè)計(jì)講學(xué)_第1頁](http://file4.renrendoc.com/view/8418979ea3c94a7f6a3533fea6d3d78b/8418979ea3c94a7f6a3533fea6d3d78b1.gif)
![圖形用戶界面設(shè)計(jì)講學(xué)_第2頁](http://file4.renrendoc.com/view/8418979ea3c94a7f6a3533fea6d3d78b/8418979ea3c94a7f6a3533fea6d3d78b2.gif)
![圖形用戶界面設(shè)計(jì)講學(xué)_第3頁](http://file4.renrendoc.com/view/8418979ea3c94a7f6a3533fea6d3d78b/8418979ea3c94a7f6a3533fea6d3d78b3.gif)
![圖形用戶界面設(shè)計(jì)講學(xué)_第4頁](http://file4.renrendoc.com/view/8418979ea3c94a7f6a3533fea6d3d78b/8418979ea3c94a7f6a3533fea6d3d78b4.gif)
![圖形用戶界面設(shè)計(jì)講學(xué)_第5頁](http://file4.renrendoc.com/view/8418979ea3c94a7f6a3533fea6d3d78b/8418979ea3c94a7f6a3533fea6d3d78b5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
圖形用戶界面設(shè)計(jì)講學(xué)圖形用戶界面設(shè)計(jì)
BuildingGUIswithAWTTheAWTEventModelTheAWTComponentLibraryJavaFoundationClasses界面的構(gòu)成容器標(biāo)準(zhǔn)組件用戶自定義成分創(chuàng)建GUI各組成成分,并安排從屬位置關(guān)系(包含,相鄰,相交)定義GUI各成分對(duì)不同事件的響應(yīng),實(shí)現(xiàn)與用戶的交互與界面功能界面元素容器是用來組織其他界面成分和元素的單元??梢孕纬扇萜鞯膶哟危瑯?gòu)筑復(fù)雜結(jié)構(gòu)Window(Frame、Applet、Dialog)組件是圖形用戶界面的基本單位,它里面不再包含其他的成分。GUI組件是圖形用戶界面標(biāo)準(zhǔn)化的結(jié)果。GUI組件的作用是完成與用戶的交互。用戶自定義成分文字、圖形、圖象…不能像標(biāo)準(zhǔn)組件一樣被系統(tǒng)識(shí)別和承認(rèn),只起裝飾作用。不能響應(yīng)用戶的動(dòng)作,不具有交互功能。AbstractWindowsToolkit(抽象窗口工具)AWT類庫中的各種操作被定義成在一個(gè)并不存在的“抽象窗口”中進(jìn)行的。抽取不同軟硬件平臺(tái)中所實(shí)現(xiàn)的窗口的公共特性。所設(shè)計(jì)的界面獨(dú)立于具體的界面實(shí)現(xiàn)。提供與機(jī)器無關(guān)的基本GUI標(biāo)準(zhǔn)組件。選擇類組件:?jiǎn)芜x按鈕、復(fù)選框、下拉選單、列表框文字處理類組件:標(biāo)簽、文本框、編輯框。命令類組件:按鈕、工具欄、菜單等。抽象窗口工具---AWTAWT類層次關(guān)系圖ComponentContainerPanelWindowDialogButtonTextFieldTextAreaTextComponentCheckboxMenuComponentMenuMenuItemMenuBar其他組件titleresize獨(dú)立不獨(dú)立AppletFrameLayoutManager(布局管理器)為了使我們生成的圖形用戶界面具有良好的平臺(tái)無關(guān)性,Java語言中,提供了布局管理器這個(gè)工具來管理組件在容器中的布局,而不使用直接設(shè)置組件位置和大小的方式。每個(gè)容器都有一個(gè)布局管理器,當(dāng)容器需要對(duì)某個(gè)組件進(jìn)行定位或判斷其大小尺寸時(shí),就會(huì)調(diào)用其對(duì)應(yīng)的布局管理器。在程序中安排組件的位置和大小時(shí),應(yīng)該注意:容器中的布局管理器負(fù)責(zé)各個(gè)組件的大小和位置,因此用戶無法在這種情況下設(shè)置組件的這些屬性。如果試圖使用Java語言提供的setLocation(),setSize(),setBounds()等方法,則都會(huì)被布局管理器覆蓋。如果用戶確實(shí)需要親自設(shè)置組件大小或位置,則應(yīng)取消該容器的布局管理器,方法為: setLayout(null);LayoutManager(布局管理器)常用容器FramePanelAppletFrame||||Panel|||LayoutManagerFlowLayout缺省布局管理器BorderLayoutGridLayoutCardLayoutGridBagLayoutBorderLayoutWindow,F(xiàn)rame和Dialog的缺省布局管理器。BorderLayout布局管理器包括5個(gè)區(qū)域:North,South,East,West和Center。
GridLayoutFrameFrame是一個(gè)頂級(jí)窗口。Frame的缺省布局管理器為BorderLayout。PanelPanel無法單獨(dú)顯示,必須添加到某個(gè)容器中。Panel的缺省布局管理器為FlowLayout。當(dāng)把Panel作為一個(gè)組件添加到某個(gè)容器中后,該P(yáng)anel仍然可以有自己的布局管理器。因此,可以利用Panel使得BorderLayout中某個(gè)區(qū)域顯示多個(gè)組件。常用容器CardLayoutCardLayout布局管理器能夠幫助用戶處理兩個(gè)以至更多的成員共享同一顯示空間??梢栽谌魏蜳anel中draw一般,創(chuàng)造一個(gè)Panel的子類并覆蓋paint方法。每個(gè)容器都有一個(gè)Graphics對(duì)象Graphics對(duì)象實(shí)現(xiàn)了許多draw方法。P2249.1、9.2、9.3、9.4AWTEventModelWhatisanEvent?Event
事件,就是發(fā)生在用戶界面上的用戶交互行為所產(chǎn)生的一種效果。EventSource 產(chǎn)生事件的對(duì)象。Eventhandler 接收事件對(duì)象并對(duì)其進(jìn)行處理的方法。事件處理模型Hierachicalmodel(JDK1.0)
事件傳遞機(jī)制。Delegationmodel(JDK1.1,1.2) 授權(quán)處理機(jī)制。DelegationModel將事件源對(duì)象和事件處理器(事件監(jiān)聽器)分開。使用JDK1.1授權(quán)處理模型進(jìn)行事件處理的一般方法:對(duì)于某種類型的事件XXXEvent,要想接收并處理這類事件,必須定義相應(yīng)的事件監(jiān)聽器類,該類需要實(shí)現(xiàn)針對(duì)特定事件的特定接口XXXListener;事件源中產(chǎn)生事件后,必須注冊(cè)相應(yīng)于該類事件的監(jiān)聽器,使用addXXXListener(XXXListener)方法來注冊(cè)監(jiān)聽器。java.util.EventObject類 EventObject類是所有事件對(duì)象的基礎(chǔ)類,所有的事件類都是由它派生出來的。
publicclassEventObjectimplementsjava.io.Serializable{protectedtransientObjectsource;publicEventObject(Objectsource);publicObjectgetSource();publicStringtoString(); } 和AWT有關(guān)的所有事件類都由java.awt.AWTEvent類派生,AWT事件共有10類,可以歸為兩大類:低級(jí)事件和高級(jí)事件。低級(jí)事件ComponentEvent(組件事件:組件尺寸的變化,移動(dòng))ContainerEvent(容器事件:組件增加,移動(dòng))WindowEvent(窗口事件:關(guān)閉窗口,窗口閉合,圖標(biāo)化)FocusEvent(焦點(diǎn)事件:焦點(diǎn)的獲得和丟失)KeyEvent(鍵盤事件:鍵按下、釋放)MouseEvent(鼠標(biāo)事件:鼠標(biāo)單擊,移動(dòng))高級(jí)事件(語義事件)ActionEvent(動(dòng)作事件:按鈕按下,TextField中按Enter鍵)AdjustmentEvent(調(diào)節(jié)事件:在滾動(dòng)條上移動(dòng)滑塊以調(diào)節(jié)數(shù)值)ItemEvent(項(xiàng)目事件:選擇項(xiàng)目,不選擇項(xiàng)目)TextEvent(文本事件,文本對(duì)象改變)事件類ActionEvent類:存放這個(gè)事件的細(xì)節(jié)。e.getSource()返回事件發(fā)生的對(duì)象(名)e.getActionCommand()返回按扭名。ActionListener接口publicvoidactionPerformed(ActionEvente)監(jiān)聽者類某個(gè)類可以兼職也可以專職做這件事(實(shí)現(xiàn)監(jiān)聽者接口)。一個(gè)類若實(shí)現(xiàn)一個(gè)接口,必須實(shí)現(xiàn)接口的全部方法。例如:ActionListener接口只有一個(gè)方法:
voidactionPerformed(ActionEvente)實(shí)現(xiàn)接口的類可以是:一般類內(nèi)部類匿名類3兼職4專職,內(nèi)部類5匿名類事件處理有關(guān)問題有哪些事件類(java.awt.event)?每個(gè)事件類的監(jiān)聽者接口?每個(gè)監(jiān)聽者接口規(guī)定的方法?多方法的監(jiān)聽者接口的適配器(實(shí)現(xiàn)接口的抽象類)是什么?組件的事件委托(注冊(cè))方法?窗口事件關(guān)閉窗口框時(shí)引發(fā)WindowEvent事件委托addWindowListener(newWclose());定義監(jiān)聽者類classWcloseimplementsWindowListener{ publicvoidwindowClosing(WindowEvente){ System.exit(0);}WindowListener類有7個(gè)方法,必須都實(shí)現(xiàn)WindowAdapter接收窗口事件的抽象適配器類,用空內(nèi)容實(shí)現(xiàn)了WindowListener接口的所有方法classWcloseextendsWindowAdapter{…}ActionEvent事件引發(fā)原因:?jiǎn)螕舭磁?,雙擊列表框中選項(xiàng),選擇菜單項(xiàng),文本框中的回車事件監(jiān)聽接口:ActionListener接口方法:actionPerformed(ActionEvente)組件注冊(cè)該事件方法:addActionListener(監(jiān)聽者)TextEvent事件引發(fā)原因:文本框或文本區(qū)域內(nèi)容改變事件監(jiān)聽接口:TextListener接口方法:textValueChanged(TextEvent
e)組件注冊(cè)該事件方法:addTextListener(監(jiān)聽者)ItemEvent事件引發(fā)原因:改變列表框中的選中項(xiàng)改變復(fù)選框選中狀態(tài)改變下拉選單的選中項(xiàng)事件監(jiān)聽接口:ItemListener接口方法:itemStateChanged(ItemEvent
e)組件注冊(cè)該事件方法:addItemListener(監(jiān)聽者)AdjustmentEvent事件引發(fā)原因:操作滾動(dòng)條改變滑塊位置事件監(jiān)聽接口:AdjustmentListener接口方法:adjustmentValueChanged(AdjustmentEvent
e)組件注冊(cè)該事件方法:addAdjustmentListener(監(jiān)聽者)KeyEvent事件引發(fā)原因:敲完鍵(KEY-TYPED)按下鍵(KEY-PRESSED)釋放鍵(KEY-RELEASE)事件監(jiān)聽接口:KeyListener接口方法:keyPressed(KeyEvent
e)鍵已被按下時(shí)調(diào)用keyReleased(KeyEvent
e)鍵已被釋放時(shí)調(diào)用keyTyped(KeyEvent
e)鍵已被敲完時(shí)調(diào)用KeyEvent方法:charch=e.getKeyChar();
事件監(jiān)聽適配器(抽象類)KeyAdapter組件注冊(cè)該事件方法:addKeyListener(監(jiān)聽者)MouseEvent事件引發(fā)原因:(鼠標(biāo)作用在一個(gè)組件上)鼠標(biāo)事件:鼠標(biāo)鍵按下,鼠標(biāo)鍵抬起,單擊鼠標(biāo),鼠標(biāo)光標(biāo)進(jìn)入一個(gè)組件,鼠標(biāo)光標(biāo)離開一個(gè)組件。鼠標(biāo)移動(dòng)事件:鼠標(biāo)移動(dòng),鼠標(biāo)拖動(dòng)鼠標(biāo)事件監(jiān)聽接口1:MouseListener接受鼠標(biāo)事件該接口方法:mouseClicked(MouseEvent
e)mouseEntered(MouseEvent
e)鼠標(biāo)光標(biāo)進(jìn)入一個(gè)組件mouseExited(MouseEvent
e)鼠標(biāo)光標(biāo)離開一個(gè)組件MouseEvent事件(續(xù))鼠標(biāo)事件監(jiān)聽適配器(抽象類)MouseAdapter鼠標(biāo)事件監(jiān)聽接口2:MouseMotionListener接受鼠標(biāo)移動(dòng)事件該接口方法:mouseMoved(MouseEvent
e)鼠標(biāo)光標(biāo)在組件上移動(dòng)mouseDragged(MouseEvent
e)用鼠標(biāo)拖動(dòng)一個(gè)組件鼠標(biāo)移動(dòng)事件監(jiān)聽適配器MouseMotionAdapter組件注冊(cè)鼠標(biāo)事件方法:addMouseListener(監(jiān)聽者)組件注冊(cè)鼠標(biāo)移動(dòng)事件方法:addMouseMotionListener(監(jiān)聽者)MouseEvent事件(續(xù))MouseEvent方法e.getClickCount()=1單擊=2雙擊Pointe.getPoint()取鼠標(biāo)光標(biāo)位置inte.getX()inte.getY()取鼠標(biāo)光標(biāo)位置e.getModifiers()=e.BUTTON1_MASK鼠標(biāo)左鍵=e.BUTTON3_MASK鼠標(biāo)右鍵6-鼠標(biāo)事件WindowEvent事件引發(fā)原因:有關(guān)窗口操作引發(fā)的事件事件監(jiān)聽接口WindowListener接口方法windowActivated(WindowEvent
e)激活窗口windowClosed(WindowEvent
e)調(diào)用dispose方法關(guān)閉窗口后。windowClosing(WindowEvent
e)試圖利用窗口關(guān)閉框關(guān)閉窗口windowDeactivated(WindowEvent
e)本窗口成為非活動(dòng)窗口WindowEvent事件(續(xù))windowDeiconified(WindowEvent
e)窗口從最小化恢復(fù)為普通窗口windowIconified(WindowEvent
e)窗口變?yōu)樽钚』瘓D標(biāo)windowOpened(WindowEvent
e)當(dāng)窗口第一次打開成為可見時(shí)接口適配器WindowAdapter注冊(cè)事件方法addWindowListenerFocusEvent事件引發(fā)原因:組件獲得焦點(diǎn)組件失去焦點(diǎn)事件監(jiān)聽接口FocusListener接口方法:focusGained(FocusEvent
e)組件獲得焦點(diǎn)時(shí)調(diào)用focusLost(FocusEvent
e)組件失去焦點(diǎn)時(shí)調(diào)用接口適配器:FocusAdapter組件注冊(cè)該事件方法:addFocusListenerTextEvent事件引發(fā)原因:當(dāng)組件(如文本框)文本改變時(shí)引發(fā)事件監(jiān)聽接口:TextListener接口方法:textValueChanged(TextEvent
e)組件注冊(cè)該事件方法:addTextListener
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 科室護(hù)理工作計(jì)劃范例
- 教師個(gè)人德育工作計(jì)劃
- 行政助理工作計(jì)劃
- 2025年度房屋租賃抵押貸款合同規(guī)范范本
- 專升本書面申請(qǐng)書
- 報(bào)關(guān)注冊(cè)登記申請(qǐng)書
- 2025年02月河南省農(nóng)業(yè)科學(xué)院芝麻研究中心公開招聘科研崗位6人筆試歷年典型考題(歷年真題考點(diǎn))解題思路附帶答案詳解
- 書法培訓(xùn)合同范本
- 如何寫調(diào)薪申請(qǐng)書
- 一次付款合同范本
- 部編人教版二年級(jí)下冊(cè)語文 愿望的實(shí)現(xiàn) 教學(xué)課件
- GB/T 7031-2005機(jī)械振動(dòng)道路路面譜測(cè)量數(shù)據(jù)報(bào)告
- GB/T 17614.1-2015工業(yè)過程控制系統(tǒng)用變送器第1部分:性能評(píng)定方法
- 隱匿性陰莖的診療和治療課件
- 2022屆北京市東城區(qū)高三語文一模語文試卷講評(píng)課件
- 先天性腎上腺皮質(zhì)增生癥(CAH)課件
- 水利工程設(shè)計(jì)變更表格
- 電纜用PP填充繩標(biāo)準(zhǔn)
- 《工程熱力學(xué)》(第四版)配套教學(xué)課件
- 03fusionsphere虛擬化場(chǎng)景概要設(shè)計(jì)模板hld
- 火災(zāi)接警處置流程圖
評(píng)論
0/150
提交評(píng)論