




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第13章圖形用戶界面設(shè)計(jì)13.1GUI概述
13.2組件的創(chuàng)建與使用
13.3布局管理器
13.4事件處理
13.1GUI概述
通過圖形用戶界面(GraphicsUserInterface,GUI),用戶和程序之間可以方便地進(jìn)行交互。Java語言提供了專門的類庫來生成各種標(biāo)準(zhǔn)圖形界面元素和處理圖形界面的各種事件,以實(shí)現(xiàn)圖形用戶界面的設(shè)計(jì)。
Java語言中,設(shè)計(jì)和實(shí)現(xiàn)GUI主要分為以下3個(gè)步驟:
(1)創(chuàng)建組件(Component):建立可以顯示的元素。
(2)指定布局(Layout):排列組件位置。
(3)響應(yīng)事件(Event):與用戶產(chǎn)生交互。為了完成上述工作,Sun為我們提供了兩個(gè)專門的工具包:一個(gè)是抽象窗口工具包(AbstractWindowToolkit,AWT),另一個(gè)是Swing包。下面根據(jù)包產(chǎn)生的先后順序來逐一介紹。AWT包是為Java程序提供的建立圖形用戶界面的工具集,可用于Java的Applet和Application中。它的功能包括:用戶界面組件、事件處理模型、圖形和圖像工具(包括形狀、顏色和字體類)、布局管理器等。AWT是Swing的基礎(chǔ),Swing的產(chǎn)生原因主要是AWT不能滿足圖形化用戶界面發(fā)展的需要。隨著發(fā)展的需要,Sun公司在Java1.2版中推出了新的用戶界面庫Swing。相對于AWT來說,Swing功能更強(qiáng)大,使用更方便,它的出現(xiàn)使得Java的圖形用戶界面上了一個(gè)臺(tái)階。Swing是由100%純Java實(shí)現(xiàn)的,Swing組件是用Java實(shí)現(xiàn)的輕量級(Light-weight)組件,沒有本地代碼,不依賴操作系統(tǒng)的支持,這是它與AWT組件的最大區(qū)別。
Swing比AWT組件具有更強(qiáng)的實(shí)用性。Swing在不同的平臺(tái)上表現(xiàn)一致,并且有能力提供本地窗口系統(tǒng)不支持的其他特性。但是Swing并沒有代替AWT。在Java1.1版中,AWT事件處理模型有了根本改變。Swing使用的仍然是Java1.1版的事件處理模型。13.1.1AWT簡介
Java語言的AWT包包含了許多類來支持GUI設(shè)計(jì)。AWT提供了用于所有JavaApplets及應(yīng)用程序的基本GUI組件,還為應(yīng)用程序提供了與機(jī)器無關(guān)的界面,從而保證了一臺(tái)計(jì)算機(jī)上出現(xiàn)的內(nèi)容與另一臺(tái)上的內(nèi)容相一致。
前面已介紹過,超類可以擴(kuò)展,其屬性是可繼承的。另外,類可以被抽象化,這就是說,它們是可被分成子類的模板,子類用于類的具體實(shí)現(xiàn)。顯示在屏幕上的每個(gè)GUI組件都是抽象類組件的子類。也就是說,每個(gè)從組件類擴(kuò)展的圖形對象都與允許它們運(yùn)行的大量方法和實(shí)例變量共享。Container是Component的一個(gè)抽象子類,它允許其他組件被嵌套在里面。這些組件也可以是允許其他組件被嵌套在里面的容器,于是就創(chuàng)建了一個(gè)完整的層次結(jié)構(gòu)。在屏幕上布置GUI組件時(shí),Container是很有用的。Panel是Container的最簡單的類。Container的另一個(gè)子類是Window。AWT由Java語言的java.awt提供,該包中有許多用來設(shè)計(jì)GUI的組件類,如按鈕、菜單、列表、文本框等組件類,同時(shí)它還包括窗口、面板等容器。AWT是Java語言進(jìn)行GUI程序設(shè)計(jì)的基礎(chǔ)。13.1.2Swing簡介
Swing是Java基礎(chǔ)類庫(JavaFoundationClass,JFC)提供的新的圖形界面類庫。在JFC的新特性中,Swing是其中最主要的部分。Swing為基于窗體的應(yīng)用開發(fā)設(shè)計(jì)提供了一套精美、豐富的基本組件以及一個(gè)能使圖形用戶界面獨(dú)立于特定平臺(tái)的顯示框架。用Swing組件設(shè)計(jì)的程序比用AWT設(shè)計(jì)的程序具有更加優(yōu)美的外觀感受。
Swing是一個(gè)擴(kuò)展的AWT,它提供了一個(gè)遠(yuǎn)大于AWT的綜合的組件集合,并引入了新的概念和性能。
javax.swing包中定義了兩種類型的組件:頂層容器(即重量級組件)(JFrame、JApplet、JDialog、JWindow)和輕量級組件。Swing組件從AWT的Container類繼承而來,輕量級組件是除頂層容器外的“J”類組件,它們是繼承AWTContainer類的JComponent類及其子類。與AWT比較,Swing提供了更完整的組件,引入了許多新的特性和能力。SwingAPI是圍繞著實(shí)現(xiàn)AWT各個(gè)部分的API構(gòu)筑的,從而保證了所有早期的AWT組件仍然可以使用。 13.2組件的創(chuàng)建與使用
1.?Frame框架
Frame是Window的一個(gè)子類,是帶有標(biāo)題和縮放角的窗口,繼承Java.awt.Container,因此,可以用add()方法來給框架添加組件??蚣艿哪J(rèn)布局管理器就是BorderLayout,但可以用setLayout()方法來改變??蚣茴愔械臉?gòu)造程序Frame(String)用由String規(guī)定的標(biāo)題來創(chuàng)建一個(gè)新的不可見的框架對象。當(dāng)它還處于不可見狀態(tài)時(shí),將所有組件添加到框架中。Frame類是頂層容器,具有以下特點(diǎn):
(1)?Frame類是Window類的直接子類。
(2)?Frame對象顯示的效果是一個(gè)窗口,帶有標(biāo)題和尺寸。
(3)?Frame被默認(rèn)為初始化是不可見的,可以使用setVisible(true)方法使之可見。
(4)?Frame默認(rèn)的布局管理器是BorderLayout,可以使用setLayout()方法改變默認(rèn)布局。
Frame類的常用構(gòu)造方法如下:
Framef1=newFrame();
Framef2=newFrame(Strings);//s為框架標(biāo)題圖13-1JPanel效果圖在開發(fā)中可以使用JPanel完成一些復(fù)雜的界面設(shè)計(jì)。
6.?JScrollPane
在一般的圖形界面中,如果顯示的區(qū)域不夠大,往往會(huì)出現(xiàn)滾動(dòng)條以方便用戶瀏覽,在Swing中JScrollPane的主要功能就是為顯示的內(nèi)容加入水平滾動(dòng)條。
JScrollPane主要由JViewPort和JScrollBar兩部分組成,前者主要用于顯示一個(gè)矩形區(qū)域以便于用戶瀏覽,而后者主要用于形成水平或者垂直的滾動(dòng)條。圖13-2JScrollPane效果圖 13.3布?局?管?理?器
要為應(yīng)用程序設(shè)計(jì)精美的外觀,設(shè)計(jì)和控制窗口組件在容器中的位置和相互關(guān)系,就必須學(xué)習(xí)布局設(shè)計(jì)的知識(shí)。Java語言的GUI界面設(shè)計(jì)中,布局控制是一個(gè)相當(dāng)重要的環(huán)節(jié)。將一個(gè)組件加入容器中時(shí),布局管理器控制決定了所加入組件的大小和位置。當(dāng)容器大小改變時(shí),布局管理器能自動(dòng)地改變其中組件的大小和位置。
Java.awt包定義了5個(gè)布局管理類,每個(gè)布局管理類對應(yīng)一種布局策略,這5個(gè)布局管理類分別是FlowLayout、BorderLayout、GridLayout、CardLayout和GridBagLayout。
1.?FlowLayout布局管理器
FlowLayout屬于流式布局管理器,使用此種布局方式,所有的組件會(huì)像流水一樣依次排列。
圖13-3FlowLayout布局管理器
2.BorderLayout布局管理器
BorderLayout將一個(gè)窗體的版面劃分成東、西、南、北、中五個(gè)區(qū)域,如圖13-4所示??梢灾苯訉⑿枰慕M件放到五個(gè)區(qū)域。圖13-4BorderLayout布局管理器
3.GridLayout布局管理器
GridLayout布局管理器是以表格的形式進(jìn)行管理的,如圖13-5所示。在使用此布局管理器的時(shí)候必須設(shè)置顯示的行數(shù)和列數(shù)。圖13-5GridLayout布局管理器
4.CardLayout布局管理器
CardLayout就是將一組組件彼此重疊地進(jìn)行布局,就像一張張卡片一樣,這樣每次只會(huì)展現(xiàn)一個(gè)界面。
5.GridBagLayout布局管理器
以上的布局管理器都是依靠專門的工具完成的,在Java中也可以通過GridBagLayout布局管理器的方式完成,如圖13-6所示。圖13-6GridBagLayout布局管理器
13.4事件處理
前面介紹了如何放置各種組件,使圖形界面更加豐富多彩,但是還不能響應(yīng)用戶的操作,要讓圖形界面接收用戶的操作,就必須給各個(gè)組件加上事件處理機(jī)制。事件表達(dá)了程序、系統(tǒng)及使用程序的用戶之間的動(dòng)作。當(dāng)用戶做某些事情(例如用戶在程序窗口中單擊鼠標(biāo))
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 三年級上冊數(shù)學(xué)教案-7.4分?jǐn)?shù)的初步認(rèn)識(shí)(一)練習(xí)十一 |蘇教版
- 六年級上冊數(shù)學(xué)教案-6.1 比的認(rèn)識(shí)(一)|北師大版
- 加法運(yùn)算律教案2024-2025學(xué)年數(shù)學(xué)四年級上冊 西師大版
- 2025年轉(zhuǎn)讓有限公司股權(quán)合同
- 一致行動(dòng)人協(xié)議(2025年版)-@-1
- 一年級上冊數(shù)學(xué)教案-總復(fù)習(xí)第1課時(shí)數(shù)與代數(shù)(1)∣北師大版
- 河南省三門峽市陜州區(qū)三年級英語下學(xué)期期中試題(人教PEP版-含答案)
- 《秋詞》歷年中考古詩欣賞試題匯編(截至2022年)
- 2025年河南省信陽市單招職業(yè)適應(yīng)性測試題庫及答案1套
- 2025年湖南鐵路科技職業(yè)技術(shù)學(xué)院單招職業(yè)技能測試題庫參考答案
- 【道法】開學(xué)第一課 課件-2024-2025學(xué)年統(tǒng)編版道德與法治七年級下冊
- 中華民族共同體概論專家講座第一講中華民族共同體基礎(chǔ)理論
- 2023年浙江省統(tǒng)招專升本考試英語真題及答案解析
- GB 9706.202-2021醫(yī)用電氣設(shè)備第2-2部分:高頻手術(shù)設(shè)備及高頻附件的基本安全和基本性能專用要求
- 關(guān)于對項(xiàng)目管理的獎(jiǎng)懲制度
- A320主起落架收放原理分析及運(yùn)動(dòng)仿真
- 植筋施工方案(二標(biāo))
- 神經(jīng)外科疾病健康宣教
- 2. SHT 3543-2017施工過程文件表格
- 分部分項(xiàng)工程項(xiàng)目清單
- 電纜防火分析及措施
評論
0/150
提交評論