圖形用戶界面元素設(shè)計(jì)_第1頁
圖形用戶界面元素設(shè)計(jì)_第2頁
圖形用戶界面元素設(shè)計(jì)_第3頁
圖形用戶界面元素設(shè)計(jì)_第4頁
圖形用戶界面元素設(shè)計(jì)_第5頁
已閱讀5頁,還剩56頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

圖形用戶界面設(shè)計(jì)

BuildingGUIswithAWTTheAWTEventModelTheAWTComponentLibraryJavaFoundationClasses界面的構(gòu)成容器標(biāo)準(zhǔn)組件用戶自定義成分創(chuàng)建GUI各組成成分,并安排從屬位置關(guān)系(包含,相鄰,相交)定義GUI各成分對不同事件的響應(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)識別和承認(rèn),只起裝飾作用。不能響應(yīng)用戶的動作,不具有交互功能。AbstractWindowsToolkit(抽象窗口工具)AWT類庫中的各種操作被定義成在一個(gè)并不存在的“抽象窗口”中進(jìn)行的。抽取不同軟硬件平臺中所實(shí)現(xiàn)的窗口的公共特性。所設(shè)計(jì)的界面獨(dú)立于具體的界面實(shí)現(xiàn)。提供與機(jī)器無關(guān)的基本GUI標(biāo)準(zhǔn)組件。選擇類組件:單選按鈕、復(fù)選框、下拉選單、列表框文字處理類組件:標(biāo)簽、文本框、編輯框。命令類組件:按鈕、工具欄、菜單等。抽象窗口工具---AWTAWT類層次關(guān)系圖ComponentContainerPanelWindowDialogButtonTextFieldTextAreaTextComponentCheckboxMenuComponentMenuMenuItemMenuBar其他組件titleresize獨(dú)立不獨(dú)立AppletFrameLayoutManager(布局管理器)為了使我們生成的圖形用戶界面具有良好的平臺無關(guān)性,Java語言中,提供了布局管理器這個(gè)工具來管理組件在容器中的布局,而不使用直接設(shè)置組件位置和大小的方式。每個(gè)容器都有一個(gè)布局管理器,當(dāng)容器需要對某個(gè)組件進(jìn)行定位或判斷其大小尺寸時(shí),就會調(diào)用其對應(yīng)的布局管理器。在程序中安排組件的位置和大小時(shí),應(yīng)該注意:容器中的布局管理器負(fù)責(zé)各個(gè)組件的大小和位置,因此用戶無法在這種情況下設(shè)置組件的這些屬性。如果試圖使用Java語言提供的setLocation(),setSize(),setBounds()等方法,則都會被布局管理器覆蓋。如果用戶確實(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è)頂級窗窗口。Frame的缺缺省布局局管理器器為BorderLayout。PanelPanel無法法單獨(dú)顯顯示,必必須添加加到某個(gè)個(gè)容器中中。Panel的缺缺省布局局管理器器為FlowLayout。。當(dāng)把Panel作為一一個(gè)組件件添加到到某個(gè)容容器中后后,該P(yáng)anel仍然然可以有有自己的的布局管管理器。。因此,,可以利利用Panel使得BorderLayout中中某個(gè)區(qū)區(qū)域顯示示多個(gè)組組件。常用容器CardLayoutCardLayout布局管管理器能夠夠幫助用戶戶處理兩個(gè)個(gè)以至更多多的成員共共享同一顯顯示空間。??梢栽谌魏魏蜳anel中draw一般,創(chuàng)造造一個(gè)Panel的的子類并覆覆蓋paint方法法。每個(gè)容器都都有一個(gè)Graphics對對象Graphics對對象實(shí)現(xiàn)了了許多draw方法法。P2249.1、、9.2、9.3、、9.4AWTEventModelWhatisanEvent?Event事件,就是是發(fā)生在用用戶界面上上的用戶交交互行為所所產(chǎn)生的一一種效果。。EventSource產(chǎn)生事件的的對象。Eventhandler接收事件對對象并對其其進(jìn)行處理理的方法。。事件處理模模型Hierachicalmodel(JDK1.0)事件傳遞機(jī)機(jī)制。Delegationmodel(JDK1.1,1.2)授權(quán)處理機(jī)機(jī)制。DelegationModel將事件源對對象和事件件處理器((事件監(jiān)聽聽器)分開開。使用JDK1.1授授權(quán)處理模模型進(jìn)行事事件處理的的一般方法法:對于某種類類型的事件件XXXEvent,要想接接收并處理理這類事件件,必須定定義相應(yīng)的的事件監(jiān)聽聽器類,該該類需要實(shí)實(shí)現(xiàn)針對特特定事件的的特定接口口XXXListener;;事件源中產(chǎn)產(chǎn)生事件后后,必須注注冊相應(yīng)于于該類事件件的監(jiān)聽器器,使用addXXXListener(XXXListener)方方法來注冊冊監(jiān)聽器。。java.util.EventObject類EventObject類是是所有事件件對象的基基礎(chǔ)類,所所有的事件件類都是由由它派生出出來的。publicclassEventObjectimplementsjava.io.Serializable{protectedtransientObjectsource;publicEventObject(Objectsource);publicObjectgetSource();publicStringtoString();;}和AWT有有關(guān)的所有有事件類都都由java.awt.AWTEvent類派派生,AWT事件件共有10類,可以以歸為兩大大類:低級級事件和高高級事件。。低級事件ComponentEvent(組件件事件:組組件尺寸的的變化,移移動)ContainerEvent(容器器事件:組組件增加,,移動)WindowEvent(窗窗口事件::關(guān)閉窗口口,窗口閉閉合,圖標(biāo)標(biāo)化)FocusEvent(焦點(diǎn)點(diǎn)事件:焦焦點(diǎn)的獲得得和丟失))KeyEvent((鍵盤事件件:鍵按下下、釋放))MouseEvent(鼠標(biāo)標(biāo)事件:鼠鼠標(biāo)單擊,,移動)高級事件((語義事件件)ActionEvent(動動作事件::按鈕按下下,TextField中按按Enter鍵)AdjustmentEvent(調(diào)調(diào)節(jié)事件::在滾動條條上移動滑滑塊以調(diào)節(jié)節(jié)數(shù)值)ItemEvent(項(xiàng)目事事件:選擇擇項(xiàng)目,不不選擇項(xiàng)目目)TextEvent(文本事事件,文本本對象改變變)事件類ActionEvent類::存放放這個(gè)事件件的細(xì)節(jié)。。e.getSource()返返回事件發(fā)發(fā)生的對象象(名)e.getActionCommand()返返回按按扭名。ActionListener接口口publicvoidactionPerformed(ActionEvente)監(jiān)聽者類某個(gè)類可以以兼職也可可以專職做做這件事((實(shí)現(xiàn)監(jiān)聽聽者接口))。一個(gè)類若實(shí)實(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)監(jiān)聽者接口口的適配器器(實(shí)現(xiàn)接接口的抽象象類)是什什么?組件的事件件委托(注注冊)方法法?窗口事件關(guān)閉窗口框框時(shí)引發(fā)WindowEvent事件委托addWindowListener(newWclose());定義監(jiān)聽者者類classWcloseimplementsWindowListener{publicvoidwindowClosing(WindowEvente){System.exit(0);}WindowListener類有有7個(gè)方法法,必須都實(shí)實(shí)現(xiàn)WindowAdapter接收窗口事件件的抽象適配配器類,用空空內(nèi)容實(shí)現(xiàn)了了WindowListener接接口的所有方方法classWcloseextendsWindowAdapter{…}ActionEvent事件引發(fā)原因:單擊按扭,雙雙擊列表框中中選項(xiàng),選擇擇菜單項(xiàng),文文本框中的回回車事件監(jiān)聽接口口:ActionListener接口方法:actionPerformed(ActionEvente)組件注冊該事事件方法:addActionListener(監(jiān)聽者者)TextEvent事件件引發(fā)原因:文本框或文本本區(qū)域內(nèi)容改改變事件監(jiān)聽接口口:TextListener接口方法:textValueChanged(TextEvent

e)組件注冊該事事件方法:addTextListener(監(jiān)聽者)ItemEvent事件件引發(fā)原因:改變列表框中中的選中項(xiàng)改變復(fù)選框選選中狀態(tài)改變下拉選單單的選中項(xiàng)事件監(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(KeyEvente)鍵鍵已被按按下時(shí)調(diào)用keyReleased(KeyEvente)鍵鍵已被釋放放時(shí)調(diào)用keyTyped(KeyEvent

e)鍵鍵已被被敲完時(shí)調(diào)用用KeyEvent方法:charch=e.getKeyChar();事件監(jiān)聽適配配器(抽象類類)KeyAdapter組件注冊該事事件方法:addKeyListener(監(jiān)監(jiān)聽者)MouseEvent事事件引發(fā)原因:((鼠標(biāo)作作用在一個(gè)組組件上)鼠標(biāo)事件:鼠鼠標(biāo)鍵按下,,鼠標(biāo)鍵抬起起,單擊鼠標(biāo)標(biāo),鼠標(biāo)光光標(biāo)進(jìn)入一個(gè)個(gè)組件,鼠標(biāo)標(biāo)光標(biāo)離開一一個(gè)組件。鼠標(biāo)移動事件件:鼠標(biāo)移動動,鼠標(biāo)拖動動鼠標(biāo)事件監(jiān)聽聽接口1:MouseListener接接受鼠標(biāo)標(biāo)事件該接口方法::mouseClicked(MouseEvent

e)mouseEntered(MouseEvent

e)鼠標(biāo)光標(biāo)標(biāo)進(jìn)入一個(gè)組組件mouseExited(MouseEvent

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

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

e)用鼠標(biāo)拖動動一個(gè)組件鼠標(biāo)移動事件件監(jiān)聽適配器器MouseMotionAdapter組件注冊鼠標(biāo)標(biāo)事件方法::addMouseListener(監(jiān)聽者者)組件注冊鼠標(biāo)標(biāo)移動事件方方法:addMouseMotionListener(監(jiān)聽聽者)MouseEvent事事件(續(xù))MouseEvent方方法e.getClickCount()=1單擊=2雙擊Pointe.getPoint()取取鼠標(biāo)光光標(biāo)位置inte.getX()inte.getY()取取鼠標(biāo)光標(biāo)標(biāo)位置e.getModifiers()=e.BUTTON1_MASK鼠鼠標(biāo)左鍵=e.BUTTON3_MASK鼠標(biāo)右右鍵6-鼠標(biāo)標(biāo)事件WindowEvent事件引發(fā)原因:有關(guān)窗口操作作引發(fā)的事件件事件監(jiān)聽接口口WindowListener接口方法windowActivated(WindowEvent

e)激活窗口windowClosed(WindowEvente)調(diào)用dispose方法法關(guān)閉窗口后后。windowClosing(WindowEvent

e)試圖利用用窗口關(guān)關(guān)閉框關(guān)關(guān)閉窗口口windowDeactivated(WindowEvente)本窗口成成為非活活動窗口口WindowEvent事件(續(xù)))windowDeiconified(WindowEvente)窗口從最小化化恢復(fù)為普通通窗口windowIconified(WindowEvent

e)窗口變?yōu)樽钚⌒』瘓D標(biāo)windowOpened(WindowEvente)當(dāng)窗口第一次次打開成為可可見時(shí)接口適配器WindowAdapter注冊事件方法法addWindowListenerFocusEvent事事件引發(fā)原因:組件獲得焦點(diǎn)點(diǎn)組件失去焦點(diǎn)點(diǎn)事件監(jiān)聽接口口FocusListener接口方法:focusGained(FocusEvent

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

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

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論