版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第13章圖形用戶界面設(shè)計(jì)13.1GUI概述
13.2組件的創(chuàng)建與使用
13.3布局管理器
13.4事件處理
13.1GUI概述
通過(guò)圖形用戶界面(GraphicsUserInterface,GUI),用戶和程序之間可以方便地進(jìn)行交互。Java語(yǔ)言提供了專(zhuān)門(mén)的類(lèi)庫(kù)來(lái)生成各種標(biāo)準(zhǔn)圖形界面元素和處理圖形界面的各種事件,以實(shí)現(xiàn)圖形用戶界面的設(shè)計(jì)。
Java語(yǔ)言中,設(shè)計(jì)和實(shí)現(xiàn)GUI主要分為以下3個(gè)步驟:
(1)創(chuàng)建組件(Component):建立可以顯示的元素。
(2)指定布局(Layout):排列組件位置。
(3)響應(yīng)事件(Event):與用戶產(chǎn)生交互。為了完成上述工作,Sun為我們提供了兩個(gè)專(zhuān)門(mén)的工具包:一個(gè)是抽象窗口工具包(AbstractWindowToolkit,AWT),另一個(gè)是Swing包。下面根據(jù)包產(chǎn)生的先后順序來(lái)逐一介紹。AWT包是為Java程序提供的建立圖形用戶界面的工具集,可用于Java的Applet和Application中。它的功能包括:用戶界面組件、事件處理模型、圖形和圖像工具(包括形狀、顏色和字體類(lèi))、布局管理器等。AWT是Swing的基礎(chǔ),Swing的產(chǎn)生原因主要是AWT不能滿足圖形化用戶界面發(fā)展的需要。隨著發(fā)展的需要,Sun公司在Java1.2版中推出了新的用戶界面庫(kù)Swing。相對(duì)于AWT來(lái)說(shuō),Swing功能更強(qiáng)大,使用更方便,它的出現(xiàn)使得Java的圖形用戶界面上了一個(gè)臺(tái)階。Swing是由100%純Java實(shí)現(xiàn)的,Swing組件是用Java實(shí)現(xiàn)的輕量級(jí)(Light-weight)組件,沒(méi)有本地代碼,不依賴(lài)操作系統(tǒng)的支持,這是它與AWT組件的最大區(qū)別。
Swing比AWT組件具有更強(qiáng)的實(shí)用性。Swing在不同的平臺(tái)上表現(xiàn)一致,并且有能力提供本地窗口系統(tǒng)不支持的其他特性。但是Swing并沒(méi)有代替AWT。在Java1.1版中,AWT事件處理模型有了根本改變。Swing使用的仍然是Java1.1版的事件處理模型。13.1.1AWT簡(jiǎn)介
Java語(yǔ)言的AWT包包含了許多類(lèi)來(lái)支持GUI設(shè)計(jì)。AWT提供了用于所有JavaApplets及應(yīng)用程序的基本GUI組件,還為應(yīng)用程序提供了與機(jī)器無(wú)關(guān)的界面,從而保證了一臺(tái)計(jì)算機(jī)上出現(xiàn)的內(nèi)容與另一臺(tái)上的內(nèi)容相一致。
前面已介紹過(guò),超類(lèi)可以擴(kuò)展,其屬性是可繼承的。另外,類(lèi)可以被抽象化,這就是說(shuō),它們是可被分成子類(lèi)的模板,子類(lèi)用于類(lèi)的具體實(shí)現(xiàn)。顯示在屏幕上的每個(gè)GUI組件都是抽象類(lèi)組件的子類(lèi)。也就是說(shuō),每個(gè)從組件類(lèi)擴(kuò)展的圖形對(duì)象都與允許它們運(yùn)行的大量方法和實(shí)例變量共享。Container是Component的一個(gè)抽象子類(lèi),它允許其他組件被嵌套在里面。這些組件也可以是允許其他組件被嵌套在里面的容器,于是就創(chuàng)建了一個(gè)完整的層次結(jié)構(gòu)。在屏幕上布置GUI組件時(shí),Container是很有用的。Panel是Container的最簡(jiǎn)單的類(lèi)。Container的另一個(gè)子類(lèi)是Window。AWT由Java語(yǔ)言的java.awt提供,該包中有許多用來(lái)設(shè)計(jì)GUI的組件類(lèi),如按鈕、菜單、列表、文本框等組件類(lèi),同時(shí)它還包括窗口、面板等容器。AWT是Java語(yǔ)言進(jìn)行GUI程序設(shè)計(jì)的基礎(chǔ)。13.1.2Swing簡(jiǎn)介
Swing是Java基礎(chǔ)類(lèi)庫(kù)(JavaFoundationClass,JFC)提供的新的圖形界面類(lèi)庫(kù)。在JFC的新特性中,Swing是其中最主要的部分。Swing為基于窗體的應(yīng)用開(kāi)發(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包中定義了兩種類(lèi)型的組件:頂層容器(即重量級(jí)組件)(JFrame、JApplet、JDialog、JWindow)和輕量級(jí)組件。Swing組件從AWT的Container類(lèi)繼承而來(lái),輕量級(jí)組件是除頂層容器外的“J”類(lèi)組件,它們是繼承AWTContainer類(lèi)的JComponent類(lèi)及其子類(lèi)。與AWT比較,Swing提供了更完整的組件,引入了許多新的特性和能力。SwingAPI是圍繞著實(shí)現(xiàn)AWT各個(gè)部分的API構(gòu)筑的,從而保證了所有早期的AWT組件仍然可以使用。 13.2組件的創(chuàng)建與使用
1.?Frame框架
Frame是Window的一個(gè)子類(lèi),是帶有標(biāo)題和縮放角的窗口,繼承Java.awt.Container,因此,可以用add()方法來(lái)給框架添加組件。框架的默認(rèn)布局管理器就是BorderLayout,但可以用setLayout()方法來(lái)改變。框架類(lèi)中的構(gòu)造程序Frame(String)用由String規(guī)定的標(biāo)題來(lái)創(chuàng)建一個(gè)新的不可見(jiàn)的框架對(duì)象。當(dāng)它還處于不可見(jiàn)狀態(tài)時(shí),將所有組件添加到框架中。Frame類(lèi)是頂層容器,具有以下特點(diǎn):
(1)?Frame類(lèi)是Window類(lèi)的直接子類(lèi)。
(2)?Frame對(duì)象顯示的效果是一個(gè)窗口,帶有標(biāo)題和尺寸。
(3)?Frame被默認(rèn)為初始化是不可見(jiàn)的,可以使用setVisible(true)方法使之可見(jiàn)。
(4)?Frame默認(rèn)的布局管理器是BorderLayout,可以使用setLayout()方法改變默認(rèn)布局。
Frame類(lèi)的常用構(gòu)造方法如下:
Framef1=newFrame();
Framef2=newFrame(Strings);//s為框架標(biāo)題圖13-1JPanel效果圖在開(kāi)發(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語(yǔ)言的GUI界面設(shè)計(jì)中,布局控制是一個(gè)相當(dāng)重要的環(huán)節(jié)。將一個(gè)組件加入容器中時(shí),布局管理器控制決定了所加入組件的大小和位置。當(dāng)容器大小改變時(shí),布局管理器能自動(dòng)地改變其中組件的大小和位置。
Java.awt包定義了5個(gè)布局管理類(lèi),每個(gè)布局管理類(lèi)對(duì)應(yīng)一種布局策略,這5個(gè)布局管理類(lèi)分別是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布局管理器
以上的布局管理器都是依靠專(zhuān)門(mén)的工具完成的,在Java中也可以通過(guò)GridBagLayout布局管理器的方式完成,如圖13-6所示。圖13-6GridBagLayout布局管理器
13.4事件處理
前面介紹了如何放置各種組件,使圖形界面更加豐富多彩,但是還不能響應(yīng)用戶的操作,要讓圖形界面接收用戶的操作,就必須給各個(gè)組件加上事件處理機(jī)制。事件表達(dá)了程序、系統(tǒng)及使用程序的用戶之間的動(dòng)作。當(dāng)用戶做某些事情(例如用戶在程序窗口中單擊鼠標(biāo))
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ào)學(xué)經(jīng)典導(dǎo)讀課程設(shè)計(jì)
- 紙生產(chǎn)與制造課程設(shè)計(jì)
- 智能時(shí)鐘課程設(shè)計(jì)
- 種玉米課程設(shè)計(jì)
- 特色單車(chē)課程設(shè)計(jì)
- 早教保齡球課程設(shè)計(jì)
- 物流網(wǎng)上課程設(shè)計(jì)
- 最簡(jiǎn)單的數(shù)電課程設(shè)計(jì)
- 機(jī)械原理課程設(shè)計(jì)汽車(chē)
- 數(shù)控課程設(shè)計(jì)
- 2023-2024學(xué)年北京市海淀區(qū)六年級(jí)數(shù)學(xué)第一學(xué)期期末達(dá)標(biāo)檢測(cè)試題含答案
- 2023-2024學(xué)年山東省濟(jì)南市中區(qū)數(shù)學(xué)三年級(jí)第一學(xué)期期末統(tǒng)考試題含答案
- 中國(guó)古代文學(xué)史PPT完整PPT完整全套教學(xué)課件
- 部編版語(yǔ)文一年級(jí)上冊(cè)1-8單元全冊(cè)語(yǔ)文園地課件PPT(附教案+課堂練習(xí))
- (完整版)人教版高中物理新舊教材知識(shí)對(duì)比
- 最好用高速公路機(jī)電維修手冊(cè)
- 2023年江西省公安機(jī)關(guān)警務(wù)輔助人員條例訓(xùn)練題庫(kù)115題及答案
- 國(guó)開(kāi)2023春計(jì)算機(jī)組網(wǎng)技術(shù)形考任務(wù)一參考答案
- 土默特右旗高源礦業(yè)有限責(zé)任公司高源煤礦2022年度礦山地質(zhì)環(huán)境年度治理計(jì)劃
- 【金屬非金屬礦山(地下礦山)安全管理人員】考題
- 里氏硬度計(jì)算表
評(píng)論
0/150
提交評(píng)論