




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第12章圖形用戶界面主講:胡伏湘復(fù)習(xí)提問(wèn)1、什么會(huì)產(chǎn)生異常?2、Java定義的標(biāo)準(zhǔn)異常類有哪幾個(gè)?3、異常處理的語(yǔ)句結(jié)構(gòu)是怎樣的?4、如何拋出異常?本章提要主要知識(shí)點(diǎn):圖形用戶界面的主要特征;AWT組件的一般功能;Frame類和Panel類的用法;窗口布局管理
學(xué)習(xí)目標(biāo):掌握?qǐng)D形用戶界面(GUI)的組件構(gòu)成,主要的容器的功能及組件布局管理方法,能夠運(yùn)用運(yùn)用AWT的基本組件設(shè)計(jì)圖形用戶界面。12.1分析圖形界面特征12.1.1AWT組件的一般功能
在AWT(AbstractWindowToolkit)的概念中,窗口系統(tǒng)中所顯示的各種對(duì)象統(tǒng)稱為“組件”(Component)。組件有基本組件和容器組件之分。顧名思義,基本組件是不可再分割的組件,基本組件各自都有它們特定的功能?;窘M件是構(gòu)成圖形用戶界面的基本元素。除了菜單以外的所有組件都是Component類的子類。從Component類中,它們繼承了大量的功能,Component類為實(shí)現(xiàn)所有的繪畫(huà)功能及事件處理提供了基礎(chǔ)。參見(jiàn)P79-圖5-1。12.1分析圖形界面特征12.1.1AWT組件的一般功能
1.大小和位置可以控制:所有組件的顯示尺寸和位置都是由布局管理器控制的。組件本身也提供了一些方法改變組件的尺寸,將組件放到適當(dāng)?shù)奈恢靡约皥?bào)告組件的合適和最小尺寸。組件還提供了一些方法用于返回關(guān)于組件當(dāng)前尺寸和位置的信息。2.外形可以控制:顏色、字體、效果3.基本繪圖功能的支持:Component類提供了paint()、update()和repaint()方法,這些方法使組件能夠在屏幕上將自己畫(huà)出來(lái)。4.組件狀態(tài)可以控制:Component類定義了handleEvent()等一組方法,例如:action()方法,用來(lái)處理指定類型的事件;Component類也提供了設(shè)置并獲得鍵盤光標(biāo),使鍵盤能夠?qū)M件進(jìn)行控制等方法。12.1分析圖形界面特征基本組件中文名稱功能Button按鈕完成一個(gè)命令CheckBox復(fù)選框可以同時(shí)進(jìn)行多個(gè)選擇CheckBoxGroup單選框只能在一組中選擇一項(xiàng)Choice下拉式列表創(chuàng)建一個(gè)彈出式的選擇菜單List列表創(chuàng)建一個(gè)選擇列表Menu菜單創(chuàng)建菜單系統(tǒng)TextField文本框輸入單行文字Label標(biāo)簽在標(biāo)簽內(nèi)繪制字符Canvas畫(huà)布進(jìn)行繪畫(huà)TextArea多行文本框輸入多行文字ScrollBar滾動(dòng)條在指定的范圍內(nèi)選擇一個(gè)值12.2創(chuàng)建圖形界面容器12.2.1Frame框架類
AWT的Window類使用戶可以創(chuàng)建獨(dú)立于包含App1et的瀏覽器窗口的窗口。Window類提供了用于窗口操作的基本功能。通常,用戶使用Window類的子類Frame類和Dialog類。Frame類使用戶可以創(chuàng)建帶有菜單條的全功能窗口,即框架;Dialog類用于創(chuàng)建和管理對(duì)話框。12.2創(chuàng)建圖形界面容器12.2.1Frame框架類的構(gòu)造方法:newFrame()
//創(chuàng)建不帶標(biāo)題的框架newFrame(Strings)
//創(chuàng)建帶有指定標(biāo)題的框架說(shuō)明:當(dāng)一個(gè)Frame窗口被創(chuàng)建以后,需要調(diào)用setSize()方法來(lái)設(shè)置窗口的大小,并調(diào)用setVisible(true)方法來(lái)顯示窗口12.2創(chuàng)建圖形界面容器12.2.1框架類示例importjava.awt.*;//此包必須引入publicclassMyFrameextendsFrame{//繼承Frame類publicstaticvoidmain(Stringargs[]){
MyFrame
fr=newMyFrame("Pleaseseethere!Thisisaframe");fr.setSize(400,200);//窗口大小為400*200
fr.setBackground(Color.blue);//背景為蘭色
fr.setVisible(true);//設(shè)置窗口可見(jiàn)}publicMyFrame(String
str){
super(str);//調(diào)用父類的構(gòu)造方法}}12.2創(chuàng)建圖形界面容器12.2.2Panel面板類
面板是能在屏幕上實(shí)際顯示的組件。面板繼承了Container類,它提供容納其他組件的功能。Applet類是Panel類的一個(gè)子類。要在一個(gè)Panel中嵌套其他面板,用戶只能創(chuàng)建一個(gè)新的Panel,并把它加到窗體(如:Frame或Applet)中,就像用戶加入其他GUI組件一樣,面板無(wú)邊框,不能單獨(dú)使用。12.2創(chuàng)建圖形界面容器12.2.2Panel面板類
面板的構(gòu)造方法有:Panel()
建立一個(gè)新面板,采用默認(rèn)的布局管理器Panel(LayoutManager
layout)
建立一個(gè)新面板,采用指定的布局管理器從構(gòu)造方法可以看出,面板沒(méi)有標(biāo)題,它由布局管理器進(jìn)行布局的管理
12.2創(chuàng)建圖形界面容器12.2.2Panel面板類舉例
importjava.awt.*;classPanelTestextendsPanel{ publicstaticvoidmain(Stringargs[]){
PanelTestp=newPanelTest(); Framef=newFrame("在框架中添加面板示例!");f.add(p);//將面板添加到框架窗體 f.setSize(300,200);
f.setVisible(true);}}
12.3布局圖形界面組件一般概念:在缺省情況下,每個(gè)容器中都有布局管理器。如果容器的缺省布局管理器不能滿足用戶的需要,用戶可以使用別的布局管理器來(lái)代替缺省的。AWT提供了五種布局管理器:FlowLayout、GridLayout、BorderLayout、CardLayout和GridBagLayout。各布局管理器對(duì)容器的管理方法不同。12.3布局圖形界面組件關(guān)于默認(rèn)布局管理器:如果用戶不指定容器所使用的布局管理器,那么容器將使用自己缺省的布局管理器。每當(dāng)容器需要改變外觀時(shí),這些缺省的布局管理器會(huì)發(fā)揮作用。大多數(shù)布局管理器的方法都不需要程序直接調(diào)用。AWT提供的布局管理器各有各的長(zhǎng)處和缺點(diǎn)。見(jiàn)教材P83表1、表2。12.3布局圖形界面組件選擇布局管理器的基本原則用戶要求盡量使用所有的空間來(lái)顯示組件,可以考慮使用BorderLayout和GridBagLayout。如果使用BorderLayout,用戶應(yīng)該將占用空間最大的組件放在中心部位。如果使用GridLayout,用戶需要為組件設(shè)置限制條件。用戶需要在緊湊的一行中以組件的自然尺寸顯示較少組件時(shí),用戶可以考慮用面板容納組件,并使用面板的缺省布局管理器FlowLayout。用戶需要在多行或多列中顯示一些同樣尺寸的組件,GridLayout最適合此情況。如果有必要的話,可以使用面板來(lái)容納組件。12.3布局圖形界面組件12.3.1FlowLayout順序布局管理器特點(diǎn):FlowLayout也稱為流式布局管理器,其排版方式就像流程或文本處理器在處理一段文字一樣,常用于RadioButton或CheckBox等組件的排列,它將組件逐個(gè)放置在容器的一行中,一行滿后另起一行。12.3布局圖形界面組件12.3.1FlowLayout順序布局管理器的構(gòu)造方法publicFlowLayout()建立默認(rèn)布局publicFlowLayout(intalign)設(shè)置對(duì)齊方法,對(duì)齊常量包括FlowLayout.LEFT、FlowLayout.RIGHT、FlowLayout.CENTERpublicFlowLayout(int
align,int
hgap,int
vgap)參數(shù)hgap和vgap表示組件的水平間距和垂直間距12.3布局圖形界面組件順序布局管理器舉例importjava.awt.*;publicclassTestFlowLayout{publicstaticvoidmain(Stringargs[]){Framef=newFrame("這是一個(gè)布局管理器");
f.setLayout(new
FlowLayout());f.add(newButton("第一個(gè)按鈕"));f.add(newButton("第二個(gè)按鈕"));f.add(newButton("第三個(gè)按鈕"));f.add(newButton("第四個(gè)按鈕"));f.setSize(300,300);
f.setVisible(true);}}12.3布局圖形界面組件12.3.2BorderLayout邊界布局管理器
BorderLayout將容器分為東、南、西、北、中5個(gè)區(qū)域,按照上北下南左西右東的格局分布,各用一個(gè)方位單詞表示東:East南:South西:West北:North中:Center12.3布局圖形界面組件12.3.2BorderLayout邊界布局管理器以下例題表明Frame的默認(rèn)布局管理器是BorderLayoutimportjava.awt.*;publicclassTestBorderLayout{publicstaticvoidmain(Stringargs[]){Framef=newFrame("這是一個(gè)邊界布局管理器");f.add(newButton("第一個(gè)按鈕"));f.add(newButton("第二個(gè)按鈕"));f.setSize(300,300);f.setVisible(true);}}12.3布局圖形界面組件改進(jìn)后:importjava.awt.*;publicclassTestBorderLayout{publicstaticvoidmain(String
args[]){Framef=newFrame("這是一個(gè)邊界布局管理器");
f.setLayout(new
BorderLayout());
f.add("North",newButton("第一個(gè)按鈕"));
f.add("West",newButton("第二個(gè)按鈕"));f.setSize(300,300);
f.setVisible(true);}}12.3布局圖形界面組件12.3.3GridLayout網(wǎng)格布局管理器GridLayout網(wǎng)格布局管理器用于將容器區(qū)域劃分為一個(gè)矩形網(wǎng)格(區(qū)域),其組件按行和列排列,每個(gè)組件占一格。12.3布局圖形界面組件12.3.3GridLayout的構(gòu)造方法:GridLayout()//成一個(gè)單列的網(wǎng)格布局GridLayout(int
row,int
col)//生成一個(gè)設(shè)定行數(shù)和列數(shù)的網(wǎng)格布局GridLayout(int
row,int
col,int
horz,int
vert)//可以設(shè)置組件之間的水平和垂直間隔12.3布局圖形界面組件網(wǎng)格布局示例:importjava.awt.*;publicclassGridLayoutExample{publicstaticvoidmain(Stringargs[]){Framef=newFrame("網(wǎng)格布局演示!");Stringstr[]={"1","2","3","4","5","6","7","8","9"};
f.setLayout(new
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 餐飲消防衛(wèi)生管理制度
- 車輛管理制度培訓(xùn)要點(diǎn)
- 銷售團(tuán)隊(duì)全案管理制度
- 食品批發(fā)倉(cāng)庫(kù)管理制度
- 飼料加工設(shè)備管理制度
- 餐廳采購(gòu)門店管理制度
- 車輛監(jiān)控人員管理制度
- 食品公司倉(cāng)儲(chǔ)管理制度
- 進(jìn)口食品銷售管理制度
- 食堂賬目收支管理制度
- 萬(wàn)用表校準(zhǔn)報(bào)告
- 模板支撐體系拆除申請(qǐng)表
- 公司金融課件(完整版)
- 地鐵盾構(gòu)法施工技術(shù)試題
- 高處作業(yè)審批表
- 英語(yǔ)口譯基礎(chǔ)教程--Unit-7-10
- DBJ04∕T 253-2021 建筑工程施工安全管理標(biāo)準(zhǔn)
- 二元一次方程組(課堂PPT)
- 《淮陰師范學(xué)院二級(jí)學(xué)院經(jīng)費(fèi)核撥管理辦法(試行)》
- 實(shí)名核驗(yàn)(法人)業(yè)務(wù)辦理表
- 蘭亭集序米字格高清word打印版本(全)
評(píng)論
0/150
提交評(píng)論