圖形用戶界面設計講學_第1頁
圖形用戶界面設計講學_第2頁
圖形用戶界面設計講學_第3頁
圖形用戶界面設計講學_第4頁
圖形用戶界面設計講學_第5頁
已閱讀5頁,還剩56頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

圖形用戶界面設計講學圖形用戶界面設計

BuildingGUIswithAWTTheAWTEventModelTheAWTComponentLibraryJavaFoundationClasses界面的構(gòu)成容器標準組件用戶自定義成分創(chuàng)建GUI各組成成分,并安排從屬位置關(guān)系(包含,相鄰,相交)定義GUI各成分對不同事件的響應,實現(xiàn)與用戶的交互與界面功能界面元素容器是用來組織其他界面成分和元素的單元??梢孕纬扇萜鞯膶哟?,構(gòu)筑復雜結(jié)構(gòu)Window(Frame、Applet、Dialog)組件是圖形用戶界面的基本單位,它里面不再包含其他的成分。GUI組件是圖形用戶界面標準化的結(jié)果。GUI組件的作用是完成與用戶的交互。用戶自定義成分文字、圖形、圖象…不能像標準組件一樣被系統(tǒng)識別和承認,只起裝飾作用。不能響應用戶的動作,不具有交互功能。AbstractWindowsToolkit(抽象窗口工具)AWT類庫中的各種操作被定義成在一個并不存在的“抽象窗口”中進行的。抽取不同軟硬件平臺中所實現(xiàn)的窗口的公共特性。所設計的界面獨立于具體的界面實現(xiàn)。提供與機器無關(guān)的基本GUI標準組件。選擇類組件:單選按鈕、復選框、下拉選單、列表框文字處理類組件:標簽、文本框、編輯框。命令類組件:按鈕、工具欄、菜單等。抽象窗口工具---AWTAWT類層次關(guān)系圖ComponentContainerPanelWindowDialogButtonTextFieldTextAreaTextComponentCheckboxMenuComponentMenuMenuItemMenuBar其他組件titleresize獨立不獨立AppletFrameLayoutManager(布局管理器)為了使我們生成的圖形用戶界面具有良好的平臺無關(guān)性,Java語言中,提供了布局管理器這個工具來管理組件在容器中的布局,而不使用直接設置組件位置和大小的方式。每個容器都有一個布局管理器,當容器需要對某個組件進行定位或判斷其大小尺寸時,就會調(diào)用其對應的布局管理器。在程序中安排組件的位置和大小時,應該注意:容器中的布局管理器負責各個組件的大小和位置,因此用戶無法在這種情況下設置組件的這些屬性。如果試圖使用Java語言提供的setLocation(),setSize(),setBounds()等方法,則都會被布局管理器覆蓋。如果用戶確實需要親自設置組件大小或位置,則應取消該容器的布局管理器,方法為: setLayout(null);LayoutManager(布局管理器)常用容器FramePanelAppletFrame||||Panel|||LayoutManagerFlowLayout缺省布局管理器BorderLayoutGridLayoutCardLayoutGridBagLayoutBorderLayoutWindow,F(xiàn)rame和Dialog的缺省布局管理器。BorderLayout布局管理器包括5個區(qū)域:North,South,East,West和Center。

GridLayoutFrameFrame是一個頂級窗口。Frame的缺省布局管理器為BorderLayout。PanelPanel無法單獨顯示,必須添加到某個容器中。Panel的缺省布局管理器為FlowLayout。當把Panel作為一個組件添加到某個容器中后,該Panel仍然可以有自己的布局管理器。因此,可以利用Panel使得BorderLayout中某個區(qū)域顯示多個組件。常用容器CardLayoutCardLayout布局管理器能夠幫助用戶處理兩個以至更多的成員共享同一顯示空間。可以在任何Panel中draw一般,創(chuàng)造一個Panel的子類并覆蓋paint方法。每個容器都有一個Graphics對象Graphics對象實現(xiàn)了許多draw方法。P2249.1、9.2、9.3、9.4AWTEventModelWhatisanEvent?Event

事件,就是發(fā)生在用戶界面上的用戶交互行為所產(chǎn)生的一種效果。EventSource 產(chǎn)生事件的對象。Eventhandler 接收事件對象并對其進行處理的方法。事件處理模型Hierachicalmodel(JDK1.0)

事件傳遞機制。Delegationmodel(JDK1.1,1.2) 授權(quán)處理機制。DelegationModel將事件源對象和事件處理器(事件監(jiān)聽器)分開。使用JDK1.1授權(quán)處理模型進行事件處理的一般方法:對于某種類型的事件XXXEvent,要想接收并處理這類事件,必須定義相應的事件監(jiān)聽器類,該類需要實現(xiàn)針對特定事件的特定接口XXXListener;事件源中產(chǎn)生事件后,必須注冊相應于該類事件的監(jiān)聽器,使用addXXXListener(XXXListener)方法來注冊監(jiān)聽器。java.util.EventObject類 EventObject類是所有事件對象的基礎類,所有的事件類都是由它派生出來的。

publicclassEventObjectimplementsjava.io.Serializable{protectedtransientObjectsource;publicEventObject(Objectsource);publicObjectgetSource();publicStringtoString(); } 和AWT有關(guān)的所有事件類都由java.awt.AWTEvent類派生,AWT事件共有10類,可以歸為兩大類:低級事件和高級事件。低級事件ComponentEvent(組件事件:組件尺寸的變化,移動)ContainerEvent(容器事件:組件增加,移動)WindowEvent(窗口事件:關(guān)閉窗口,窗口閉合,圖標化)FocusEvent(焦點事件:焦點的獲得和丟失)KeyEvent(鍵盤事件:鍵按下、釋放)MouseEvent(鼠標事件:鼠標單擊,移動)高級事件(語義事件)ActionEvent(動作事件:按鈕按下,TextField中按Enter鍵)AdjustmentEvent(調(diào)節(jié)事件:在滾動條上移動滑塊以調(diào)節(jié)數(shù)值)ItemEvent(項目事件:選擇項目,不選擇項目)TextEvent(文本事件,文本對象改變)事件類ActionEvent類:存放這個事件的細節(jié)。e.getSource()返回事件發(fā)生的對象(名)e.getActionCommand()返回按扭名。ActionListener接口publicvoidactionPerformed(ActionEvente)監(jiān)聽者類某個類可以兼職也可以專職做這件事(實現(xiàn)監(jiān)聽者接口)。一個類若實現(xiàn)一個接口,必須實現(xiàn)接口的全部方法。例如:ActionListener接口只有一個方法:

voidactionPerformed(ActionEvente)實現(xiàn)接口的類可以是:一般類內(nèi)部類匿名類3兼職4專職,內(nèi)部類5匿名類事件處理有關(guān)問題有哪些事件類(java.awt.event)?每個事件類的監(jiān)聽者接口?每個監(jiān)聽者接口規(guī)定的方法?多方法的監(jiān)聽者接口的適配器(實現(xiàn)接口的抽象類)是什么?組件的事件委托(注冊)方法?窗口事件關(guān)閉窗口框時引發(fā)WindowEvent事件委托addWindowListener(newWclose());定義監(jiān)聽者類classWcloseimplementsWindowListener{ publicvoidwindowClosing(WindowEvente){ System.exit(0);}WindowListener類有7個方法,必須都實現(xiàn)WindowAdapter接收窗口事件的抽象適配器類,用空內(nèi)容實現(xiàn)了WindowListener接口的所有方法classWcloseextendsWindowAdapter{…}ActionEvent事件引發(fā)原因:單擊按扭,雙擊列表框中選項,選擇菜單項,文本框中的回車事件監(jiān)聽接口:ActionListener接口方法:actionPerformed(ActionEvente)組件注冊該事件方法:addActionListener(監(jiān)聽者)TextEvent事件引發(fā)原因:文本框或文本區(qū)域內(nèi)容改變事件監(jiān)聽接口:TextListener接口方法:textValueChanged(TextEvent

e)組件注冊該事件方法:addTextListener(監(jiān)聽者)ItemEvent事件引發(fā)原因:改變列表框中的選中項改變復選框選中狀態(tài)改變下拉選單的選中項事件監(jiān)聽接口:ItemListener接口方法:itemStateChanged(ItemEvent

e)組件注冊該事件方法:addItemListener(監(jiān)聽者)AdjustmentEvent事件引發(fā)原因:操作滾動條改變滑塊位置事件監(jiān)聽接口:AdjustmentListener接口方法:adjustmentValueChanged(AdjustmentEvent

e)組件注冊該事件方法:addAdjustmentListener(監(jiān)聽者)KeyEvent事件引發(fā)原因:敲完鍵(KEY-TYPED)按下鍵(KEY-PRESSED)釋放鍵(KEY-RELEASE)事件監(jiān)聽接口:KeyListener接口方法:keyPressed(KeyEvent

e)鍵已被按下時調(diào)用keyReleased(KeyEvent

e)鍵已被釋放時調(diào)用keyTyped(KeyEvent

e)鍵已被敲完時調(diào)用KeyEvent方法:charch=e.getKeyChar();

事件監(jiān)聽適配器(抽象類)KeyAdapter組件注冊該事件方法:addKeyListener(監(jiān)聽者)MouseEvent事件引發(fā)原因:(鼠標作用在一個組件上)鼠標事件:鼠標鍵按下,鼠標鍵抬起,單擊鼠標,鼠標光標進入一個組件,鼠標光標離開一個組件。鼠標移動事件:鼠標移動,鼠標拖動鼠標事件監(jiān)聽接口1:MouseListener接受鼠標事件該接口方法:mouseClicked(MouseEvent

e)mouseEntered(MouseEvent

e)鼠標光標進入一個組件mouseExited(MouseEvent

e)鼠標光標離開一個組件MouseEvent事件(續(xù))鼠標事件監(jiān)聽適配器(抽象類)MouseAdapter鼠標事件監(jiān)聽接口2:MouseMotionListener接受鼠標移動事件該接口方法:mouseMoved(MouseEvent

e)鼠標光標在組件上移動mouseDragged(MouseEvent

e)用鼠標拖動一個組件鼠標移動事件監(jiān)聽適配器MouseMotionAdapter組件注冊鼠標事件方法:addMouseListener(監(jiān)聽者)組件注冊鼠標移動事件方法:addMouseMotionListener(監(jiān)聽者)MouseEvent事件(續(xù))MouseEvent方法e.getClickCount()=1單擊=2雙擊Pointe.getPoint()取鼠標光標位置inte.getX()inte.getY()取鼠標光標位置e.getModifiers()=e.BUTTON1_MASK鼠標左鍵=e.BUTTON3_MASK鼠標右鍵6-鼠標事件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)本窗口成為非活動窗口WindowEvent事件(續(xù))windowDeiconified(WindowEvent

e)窗口從最小化恢復為普通窗口windowIconified(WindowEvent

e)窗口變?yōu)樽钚』瘓D標windowOpened(WindowEvent

e)當窗口第一次打開成為可見時接口適配器WindowAdapter注冊事件方法addWindowListenerFocusEvent事件引發(fā)原因:組件獲得焦點組件失去焦點事件監(jiān)聽接口FocusListener接口方法:focusGained(FocusEvent

e)組件獲得焦點時調(diào)用focusLost(FocusEvent

e)組件失去焦點時調(diào)用接口適配器:FocusAdapter組件注冊該事件方法:addFocusListenerTextEvent事件引發(fā)原因:當組件(如文本框)文本改變時引發(fā)事件監(jiān)聽接口:TextListener接口方法:textValueChanged(TextEvent

e)組件注冊該事件方法:addTextListener

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論