版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、本章學(xué)習(xí)內(nèi)容n圖形用戶界面(GUI)設(shè)計nGUI事件處理nGUI常用組件和視覺控制nAWT繪圖基本概念/術(shù)語n圖形用戶界面GUI(Graphical User Interface)n抽象窗口工具集AWT(Abstract Window Toolkit)相關(guān)軟件包njava.awt包:提供基本GUI組件、視覺控制和繪圖工具APInjava.awt.event包:提供Java GUI事件處理API組件n組件(Component)是圖形用戶界面的基本組成元素,凡是能夠以圖形化方式顯示在屏幕上并能夠與用戶進(jìn)行交互的對象均為組件,如菜單、按鈕、標(biāo)簽、文本框、滾動條等。n組件不能獨(dú)立地顯示出來,必須將組件
2、放在一定的容器中才可以顯示出來。nJDK的java.awt包中定義了多種GUI組件類,如Menu、Button、Label、TextField等。n抽象類java.awt.Component是除菜單相關(guān)組件之外所有Java AWT組件類的根父類,該類規(guī)定了GUI組件的基本特性,如尺寸、位置、顏色效果等,并實現(xiàn)了作為一個GUI部件所應(yīng)具備的基本功能。容器n容器(Container)實際上是Component的子類,因此容器類對象本身也是一個組件,具有組件的所有性質(zhì),另外還具有容納其它組件和容器的功能。n容器類對象可使用方法add()添加組件兩種主要的容器類型:java.awt.Window:可自
3、由停泊的頂級窗口(比如當(dāng)前ppt的窗口,可以隨意移動)java.awt.Panel:可作為容器容納其他組件,但不能獨(dú)立存在,必須被添加到其他容器(如Frame)中.常見組件和容器nButton:可接收點(diǎn)擊操作的矩形GUI組件nCanvas:用于繪圖的畫板nCheckbox:復(fù)選框組件nChockboxMenuItem:復(fù)選框菜單項組件nChoice:下拉式列表框,內(nèi)容不可改變nComponent:抽象的組件類nContainer:抽象的容器類常見組件和容器nDialog:對話框組件,頂級窗口、帶標(biāo)題欄nFieldDialog:用于選擇文件的平臺相關(guān)對話框nFrame:基本的Java GUI窗口
4、組件nLabel:標(biāo)簽類nList:包含內(nèi)容可變的條目的列表框組件nMenuBar:菜單欄組件nMenu:菜單組件nMenuItem:菜單項組件常見組件和容器nPanel:基本容器類,不能單獨(dú)停泊nPopupMenu:彈出式菜單組件nScrollbar:滾動條組件nScrollPane:帶水平及垂直滾動條的容器組件nTextComponent:TextField和TextArea的基本功能nTextField:單行文本框nTextArea:多行文本框nWindow:抽象的GUI窗口類,無布局管理器Framen繼承層次java.lang.Objectjava.awt.Componentjava.
5、awt.Containerjava.awt.Windowjava.awt.FramenFrame對象的顯示效果是一個可以自由停泊的頂級”窗口”,帶有標(biāo)題和尺寸重置角標(biāo)。nFrame默認(rèn)初始化為不可見的,可以調(diào)用Frame對象的setVisible(true)方法使之變?yōu)榭梢姟作為容器Frame還可以用add()方法包含其他組件。J01組件定位nJava組件在容器中的定位由布局管理器決定。n如要人工控制組件在容器中的定位,可以取消布局管理器,然后使用Component類的下述成員方法:nsetLocation():設(shè)定組件在容器中的位置nsetSize:設(shè)定組件在容器中的大小nsetBound
6、s:設(shè)定組件在容器中的位置和大小GUI坐標(biāo)系屏幕坐標(biāo)系(0,0)3040(0,0)Frame內(nèi)部坐標(biāo)系按鈕2030PanelnPanel類的繼承層次java.lang.Objectjava.awt.Componentjava.awt.Containerjava.awt.PanelnPanel提供容納組件的空間nPanel不能獨(dú)立存在,必須被添加到其他容器中。n可以采用和所在容器不同的布局管理器J02布局管理器n容器對其中所包含組件的排列方式,包括組件的位置和大小設(shè)定,被稱為容器的布局(Layout)。n為使圖形用戶界面具有良好的平臺無關(guān)性,Java語言提供了布局管理器來管理容器的布局,而不建議
7、直接設(shè)置組件在容器中的位置和尺寸。布局管理器類層次LayoutManagerLayoutManager2GridBagLayoutCardLayoutBorderLayoutGridLayoutFlowLayout布局管理器n每個容器都有一個布局管理器,當(dāng)容器需要對某個組件進(jìn)行定位或判斷其大小尺寸時,就會調(diào)用其對應(yīng)的布局管理器。布局管理器ComponentContainerPanelAppletWindowFrameDialogBorderLayoutFlowLayoutFlowLayout布局nFlowLayout是Panel容器的默認(rèn)布局管理器類型。布局效果:n組件在容器中按照加入次序逐行
8、定位,行內(nèi)從左到右,一行排滿后換行。n不改變組件尺寸,即按照組件原始大小進(jìn)行顯示。n組件間的對齊方式默認(rèn)為居中對齊,也可以在構(gòu)造方法中設(shè)置不同的組件間距、行距、對齊方式。構(gòu)造方法:npublic FlowLayout()npublic FlowLayout(int align)npublic FlowLayout(int align,int hgap,int vgap)J03BorderLayout布局nBorderLayout是Frame容器的默認(rèn)布局管理器。布局效果:nBorderLayout將整個容器的布局劃分成東、西、南、北、中五個區(qū)域,組件只能被添加到指定的區(qū)域。n如果不指定組件的加
9、入部位,則默認(rèn)加入到Center區(qū)域。n每個區(qū)域只能加入一個組件,如加入多個,則先前加入的組件會被丟棄。n組件尺寸被強(qiáng)行控制,即與其所在區(qū)域的尺寸相同。構(gòu)造方法:npublic BorderLayout()npublic BorderLayout(int hgap,int vgap)J04BorderLayout布局BorderLayout布局容器尺寸縮放原則:n北、南兩個區(qū)域只能在水平方向縮放(寬度可以調(diào)整)n東、西兩個區(qū)域只能在垂直方向縮放(高度可以調(diào)整)n中部可以在兩個方向上縮放nFrame用BorderLayout作為默認(rèn)布局管理器BorderLayout布局NorthCenterEa
10、stWestSouthGridLayout布局布局效果:n將容器劃分成規(guī)則的矩形網(wǎng)格,每個單元格區(qū)域大小相等,組件被添加到每個單元中,按組件中加入順序先從左到右填滿一行后換行,行間從上到下。nGridLayout型布局的組件大小也被布局管理器強(qiáng)行控制,與單元格同等大小,當(dāng)容器尺寸發(fā)生改變時,組件的相對位置保持不變,但大小自動調(diào)整。構(gòu)造方法:npublic GridLayout(int rows,int cols)npublic GridLayout(int rows,int cols,int hgap,int vgap)J05CardLayout布局布局效果:n將多個組件在同一容器區(qū)域內(nèi)交替顯
11、示,相當(dāng)于多張卡片摞在一起,只有最上面的卡片是可見的。nCardLayout可以按名稱顯示某一張卡片,或按先后順序依此顯示,也可以直接定位到第一張或最后一張卡片。主要方法:npublic void first(Container parent)npublic void last(Container parent)npublic void previous(Container parent)npublic void next(Container parent)npublic void show(Container parent,String name)J06容器的嵌套使用n利用容器嵌套可以在某個
12、原本只能包含一個組件的區(qū)域中顯示多個組件。J07GUI事件處理n如果關(guān)注某個組件產(chǎn)生的事件,則可以在該組件上注冊適當(dāng)?shù)氖录幚矸椒ǎ瑢嶋H上注冊的事件處理方法所屬類型的一個對象,這個對象就是事件監(jiān)聽器。事件處理相關(guān)概念n事件(Event)一個事件類型的對象,用于描述發(fā)生什么事情,當(dāng)用戶在組件上進(jìn)行操作時會觸發(fā)相應(yīng)的事件。比如鼠標(biāo)操作會觸發(fā)MouseEvent,關(guān)閉窗口操作會觸發(fā)WindowEventn事件源(Event Source)能夠產(chǎn)生事件的GUI組件對象,如按鈕、文本框n事件處理方法(Event Handler)能夠接收、解析、處理事件類型對象,實現(xiàn)與用戶交互功能的方法。n事件監(jiān)聽器(E
13、vent Listener)調(diào)用事件處理方法的對象J08事件處理模型綜述nJava GUI設(shè)計中,通過注冊監(jiān)聽器的方式對所關(guān)注的事件源進(jìn)行監(jiān)控。n注冊監(jiān)聽器時應(yīng)指明該監(jiān)聽器監(jiān)控(感興趣)的事件種類。n當(dāng)事件源發(fā)生了某種類型的事件時,只觸發(fā)事先就已該種事件類型注冊過的監(jiān)聽器。AWT事件分類 EventObjectActionEventAdjustmentEventAWTEventItemEventTextEventContainerEventFocusEventInputEventPaintEventWindowEventKeyEventMouseEventComponentEventactio
14、nCommand屬性nactionCommand屬性用于記錄按鈕/菜單類組件所激發(fā)的ActionEvent事件相關(guān)指令信息。J09多重監(jiān)聽器n事件源可以產(chǎn)生多種不同類型的事件,因而可以注冊(觸發(fā))多種不同類型的監(jiān)聽器。n一個事件源組件上可以注冊多個監(jiān)聽器,針對同一個事件源的同一種事件也可以注冊多個監(jiān)聽器,一個監(jiān)聽器可以被注冊到多個不同的事件源上。n比如可以在一個按鈕上同時注冊多個監(jiān)聽器對象,負(fù)責(zé)監(jiān)控同一種事件,或是將多個按鈕注冊到同一個監(jiān)聽器對象上。J10事件適配器類n事件適配器類(Adapter)是針對大多數(shù)事件監(jiān)聽器接口定義的相應(yīng)的實現(xiàn)類,適配器類實現(xiàn)了相應(yīng)監(jiān)聽器接口中所有的方法,但不做任
15、何事情。npackage java.awt.event;public abstract class MouseMotionAdapter implements MouseMotionListenerpublic void mouseDragged(MouseEvent e) public void mouseMoved(MouseEvent e) J11事件適配器類監(jiān)聽器接口對應(yīng)適配器類說明nMouseListenerMouseAdapter鼠標(biāo)事件適配器nMouseMotionListeneerMouseMotionAdapter鼠標(biāo)運(yùn)動事件適配器nWindowListenerWindowA
16、dapter窗口事件適配器nFocusListenerFocusAdapter焦點(diǎn)事件適配器nKeyListenerKeyAdapter鍵盤事件適配器nComponentListenerComponentAdapter組件事件適配器nContainerListenerContainerAdapter容器事件適配器內(nèi)部類和匿名類n監(jiān)聽器類中封裝的業(yè)務(wù)邏輯具有非常強(qiáng)的針對性,一般沒有重用價值,因此經(jīng)常采用內(nèi)部類或匿名類的形式來實現(xiàn)。J12,J13AWT常用組件nButton可接收點(diǎn)擊操作的矩形GUI組件nCanvas 用于繪圖的面板nCheckbox 復(fù)選框組件nCheckboxMenuItem
17、復(fù)選框菜單項組件nChoice下拉式列表框,內(nèi)容不可改變nComponent 組件類nContainer 容器類J14AWT常用組件nDialog對話框組件,頂級窗口、帶標(biāo)題欄nFrame基本的Java GUI窗口組件nLabel標(biāo)簽類nList包含內(nèi)容可變的條目的列表框組件nMenu菜單組件nMenuItem菜單項(二級菜單)組件nPanel基本容器類,不能單獨(dú)存在AWT常用組件nScrollbar滾動條組件nScrollPane帶水平及垂直滾動條的容器組件nTextArea多行文本域nTextField單行文本框nWindow抽象的GUI窗口類,無布局管理器AWT視覺控制類njava.aw
18、t.Color類Color類用于表示標(biāo)準(zhǔn)RGB顏色空間中的顏色,主要用于在GUI開發(fā)中設(shè)置組件的背景色和前景色。njava.awt.Font類用于表示字體,F(xiàn)ont對象主要有以下三方面字體信息:n字體名稱n字體樣式n字體大小J15AWT繪圖n繪圖原理:定義子類繼承現(xiàn)有組件類,通過重寫Component類定義的paint()方法,加入所需的繪圖邏輯,以實現(xiàn)在AWT組件上繪圖的目的。public void paint(Graphics g)njava.awt.Graphics是處理各種圖形對象的基本工具類,Graphics支持兩種繪圖方式:n基本繪圖:畫線、多邊形、圓、填充圖形和文字等n繪制圖像:主要用于圖
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度綠色環(huán)保產(chǎn)品生產(chǎn)加工合同4篇
- 2025年度地下車庫車位車庫設(shè)備維護(hù)保養(yǎng)合同4篇
- 二零二五版知識產(chǎn)權(quán)許可合同擔(dān)保法執(zhí)行合同3篇
- 2025年度出租車租賃合同范本(含車輛維護(hù)保養(yǎng)責(zé)任)4篇
- 二零二五版水產(chǎn)養(yǎng)殖承包與品牌推廣合同3篇
- 個人房屋擔(dān)保合同范本(2024版)
- 2024經(jīng)典勞務(wù)承包合同范本
- 二零二五年度船舶拆解回收利用合同4篇
- 二零二五年度酒店裝修工程進(jìn)度款支付合同4篇
- 2025年度大產(chǎn)權(quán)房屋租賃合同范本4篇
- 二零二五年度無人駕駛車輛測試合同免責(zé)協(xié)議書
- 2025年湖北華中科技大學(xué)招聘實驗技術(shù)人員52名歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 高三日語一輪復(fù)習(xí)助詞「と」的用法課件
- 毛渣采購合同范例
- 2023中華護(hù)理學(xué)會團(tuán)體標(biāo)準(zhǔn)-注射相關(guān)感染預(yù)防與控制
- 五年級上冊小數(shù)遞等式計算200道及答案
- 2024年廣東高考政治真題考點(diǎn)分布匯 總- 高考政治一輪復(fù)習(xí)
- 燃?xì)夤艿滥甓葯z驗報告
- GB/T 44052-2024液壓傳動過濾器性能特性的標(biāo)識
- FZ/T 81013-2016寵物狗服裝
- JB∕T 14089-2020 袋式除塵器 濾袋運(yùn)行維護(hù)技術(shù)規(guī)范
評論
0/150
提交評論