java電子基礎(chǔ)gui編程界面設(shè)計_第1頁
java電子基礎(chǔ)gui編程界面設(shè)計_第2頁
java電子基礎(chǔ)gui編程界面設(shè)計_第3頁
java電子基礎(chǔ)gui編程界面設(shè)計_第4頁
java電子基礎(chǔ)gui編程界面設(shè)計_第5頁
已閱讀5頁,還剩69頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、GUI and Event1、使用AWT(Abstract Window Toolkit)組件2、包含組件的組件組件容器(Container) 3、外觀的管理與控制4、事件與事件處理5、AWT中的各種組件6、組件的應(yīng)用實例使用AWT(Abstract Window Toolkit)組件通過圖形用戶界面(Graphical Usererface,GUI),用戶和程序之間可以方便友好地進行交互。在Java語言中,Java的基礎(chǔ)類(Java Foundation Classed,JFC)是開發(fā)GUI的API集,它包括以下幾個部分:抽象窗口工具包(AWT):Java開發(fā)用戶界面最初的工具包,是建立JF

2、C的主要基礎(chǔ);2D API:實現(xiàn)高質(zhì)量的二維圖形;Swing組件:建立在AWT之上,新的、功能更強大的圖形組件包;可API:支持殘疾用戶的交互;使用AWTjava.awt包中包含了一個完整的類集以支持GUI程序的設(shè)計,其中的類及相互關(guān)系可以用下圖來描述:java.lang.ObjectComponent布局管理類ButtonCheckboxListContainerWindonelFrameDialogApplet字體類菜單類圖象類顏色類Graphics事件類使用AWTComponent類ponent類,它是包中最的類就是Java圖形用戶界面的基礎(chǔ),大部分組件都是由該類派生出來的。 Compo

3、nent類是一個抽象類,其中定義了組件所具有的一般功能:基本的繪畫支持(p , update等)、, rep 字體和顏色等外形控制(setFont, SetForeground等)、大小和位置控制(SetSize, SetLocation等)、圖象處理(實現(xiàn)接口 ImageObserver)以及組件狀態(tài)控制(SetEnable, isEnable, isVisible, isValid等) ,。常見的組件包括:Button, Checkbox, CheckboxGroup,Choice, Label, List, Canvas,ponent, Scrollbar等。使用AWT使用AWT菜單類菜

4、單類也是一種組件,只不過菜單類并不是由一般的Component類派生的,而是從得到的。ponent類繼承使用AWTContainer類ponent類派生出來的一種特殊類是由類,用來表示各種GUI組件的容器,其主要功能包括:組件的管理:方法add()可以向其中添加一個組件,remove()刪除其中的一個組件,布局管理:每個Container類都和一個布局管理器相聯(lián),以確定其中組件的布局。 Container類可以通過 setLayout()方法設(shè)置某種布局方式。常見的Container類有:Frame,Dialog,Panel, Applet等。使用AWT布局管理器類Java中提供了各種布局管理

5、器類來管理各種組件在容器中的放置狀態(tài),這些類都是實現(xiàn)了LayoutManager接口的。標準的布局管理器類有:FlowLayoutBorderLayoutGridLayoutCardLayoutGridBagLayout還可以通過實現(xiàn)LayoutManager接口來定義自己的布局管理器。使用AWTGraphics類Graphics類是所有用來在組件上進行圖形繪制時所使用的圖形環(huán)境上下文的父類,它提供了對組件進行圖形繪制的一般方法的接口,一個Graphics對象中封裝了用來進行圖形繪制時必須得狀態(tài)信息,包括:要繪制的組件對象當前顏色當前字體當前邏輯點操作的功能(XOR和Pa當前XOR方式的替代顏

6、色)使用AWTGraphics類還提供了一系列的方法來繪制幾何圖形、文字、圖象以及動畫:Lines:drawLine()Rectangles:drawRect(), fillRect() 和 clearRect()Raised or lowered rectangles:draw3DRect() 和 fill3DRect()Round-edged rectangles:drawRoundRect() 和 fillRoundRect()Ovals:drawOval() 和 fillOval()Arcs:drawArc() 和 fillArc()Polygons :drawPolygon() 和

7、fillPolygon()Text :drawString()Image :drawImage()Animation :通過一個循環(huán)來完成使用AWT事件類:描述各種事件的類,包括AWTEvent類及其子類、Event類。字體類:用來表示字體的類,通過它可以在GUI中使用多種系統(tǒng)支持的字體。圖象類:用來表示與處理圖象的類(GIF、JEPG)。顏色類:封裝了各種顏色。其他類:光標類、各種幾何類等 使用AWT組件及其對等類(peers)java.awt.peer中有全部awt組件的對等對象的集合,每個對象都提供了機器相關(guān)基本的方法,awt中的組件使用這些方法來實現(xiàn)機器和操作系統(tǒng)無關(guān)的GUI。組件容器

8、一個Java的圖形用戶界面的最基本組成部分就是組件(Component),組件是一個可以以圖形化的方式顯示在 屏幕上并能與用戶進行交互的對象,比如Button, Checkbox,Choice, Label, List等。組件不能獨立地顯示出來,必須將組件放在特定的對象中才能顯示出來,這就是包含組件的組件Containerponent的子類,它本身也(容器)。容器是是一個組件,具有組件所有的性質(zhì)。另外,它還具有容納其他組件和容器的功能。組件容器窗口,框Container另一個窗口Container組件容器ComponentContainerPanelButtonAppletListWindow

9、FrameTextfieldCheckboxFileDialog組件容器AWT使用Container類來定義最基本的組件容器,它有兩個常用的子類:Window類和Panel類。Window類還有兩個子類:定義框,用Dialog子類。Java還提了一個Dialog的子類FileDialog,用它生成文件框。定義一般意義的窗口,用Frame類。Frame可以用其構(gòu)造方法Fame(String)來生成,其標題由 String參數(shù)指定。一個Frame剛被創(chuàng)建后,其初始大小為(0,0),而且是不可見的,所以為了使Frame顯示出來,必須在程序中顯式地設(shè)置一下它的大小。Demo:FrameDemo:Dia

10、logimport java.awt.*;public class myFrame extends Framepublic sic void main(String args)myFrame fr = new myFrame(Frame Test); fr.setSize(400,300); fr.setBackground(Color.white); fr.setVisible(true);fr.showDialog();public myFrame(String s)super(s);public void showDialog()Dialog fd = new Dialog(this,

11、Dialog Test,true); fd.setSize(100,100);fd.setBackground(Color.red); fd.setVisible(true);組件容器Panel可以使程序員更方便地組織自己的組件,得到賞心悅目的布局。Panel可以使用構(gòu)造方法Panel()生成,當一個Panel對象被創(chuàng)建后,必須放在Window和Frame中才能可見。使用 add()方法就可以將Panel添加到其他容器中。Applet是Panel的子類,因此在小應(yīng)用程序里可以直接加入組件,而一般的應(yīng)用程序必須先定義組件容器。小應(yīng)用程序在瀏覽器中所顯示的區(qū)域就是Panel,所占的尺寸就是缺省的P

12、anel尺寸(瀏覽器本身也可以看作是一個容器)。組件容器框架(Frame)Frame是一個頂級窗口,通常是應(yīng)用程序的骨架。Frame中的退出按鈕被點擊后,將產(chǎn)生一個WindowEvent事件,表示關(guān)閉Frame,可以在Frame中實現(xiàn)WindowListener接口以WindowEvent事件。Frame中無法直接鍵盤事件,但可以往Frame中添加畫布、面板凳組件,讓它們來負責(zé)鍵盤事件。面板(Panel)面板可以處理事件,但象畫布一樣,一定要先獲得輸入焦點。框(Dialog)框與Frame相類似,一般用于接收用戶的輸入數(shù)據(jù),實現(xiàn)與用戶的交互。它與一般窗口的區(qū)別在于它依賴其他的窗口??蚍钟心J胶?/p>

13、無模式兩種,前者只讓應(yīng)用程序響應(yīng)框事件,后者則可以響應(yīng)框以外的事件,可以通過其構(gòu)造方法來設(shè)置框是否有模式:Dialog( Parent, Title, isModal ) /父窗口,標題,是否有模式組件容器文件框(FileDialog)框??梢杂闷鋑etFile()方表示文件選擇的框,它是有模式的文件名。法來獲得要打開或要滾動窗口(ScrollPane)滾動窗口也是容器的一種,象Panel一樣,無法單單獨使用。使用滾動窗口可以查看大面積的區(qū)域,因為它有滾動條。滾動窗口內(nèi)只能放一個組件,因此也無須布局管理器。通常是在滾動窗口中放一個面板,然后在面板中添加各種組件。滾動窗口中的事件一般由其中的組件

14、來管理。組件容器用戶可以從具體的容器中繼承來創(chuàng)建自己的容器,以構(gòu)造一些個性化的窗口。一般用戶通常要構(gòu)造一些適合自己需要的可以從Dialog中繼承。框,此時,public class MyFrame extends Framepublic sic void main(String args)MyFrame fr = new MyFrame(Frame and FileDialog Test); fr.setSize(500,500);fr.setBackground(Color.blue);fr.setVisible(true);fr.showDialog();public MyFrame(St

15、ring str)super(str);addWindowListener( new WindowAdapter() public void windowClosing(WindowEvent e)System.exit(0););public void showDialog()FileDialog fd = new FileDialog(this, FileDialog); fd.setVisible(true);public class MyPanelInFrame extends Framepublic MyPanelInFrame(String str)super(str);addWi

16、ndowListener( new WindowAdapter()public void windowClosing(WindowEvent e)System.exit(0););public sic void main(String args)MyPanelInFrame fr = new MyPanelInFrame(Panel in Frame); Panel pan = nenel();fr.setSize(500,500); fr.setBackground(Colreen); fr.setLayout(null);pan.setSize(200,200); pan.setBackg

17、round(Color.yellow); pan.setLocation(100,100);Button b1 = new Button(Help); Button b2 = new Button(Test); pan.add(b1);pan.add(b2);fr.add(pan); fr.setVisible(true);AWT的組件組件的應(yīng)用步驟加入 addAWT的選擇組件按鈕(Button)可點擊的用戶界面組件,當組件被點擊是,產(chǎn)生AcitonEvent事件,可以用ActionListener來。復(fù)選框(Checkbox)提供簡單的“on/off”開關(guān),同時旁邊還可以顯示說明信息。當復(fù)選

18、框狀態(tài)發(fā)生變化時,會產(chǎn)生ItemEvent事件,可以用ItemListener來復(fù)選框組(CheckboxGroup)單選框(Radio Button)當多個復(fù)選框組成一組時,就形成了單選框。復(fù)選框組中的復(fù)選框之間是相互關(guān)聯(lián)的,每次有且只有一個處于選中狀態(tài)。下拉式菜單(Choice)在下拉式菜單中有多個選項,但每次只能選擇一項。當選擇發(fā)生時,。會產(chǎn)生ItemEvent事件,可以用ItemListener來。Demo:選擇組件/Checkboxpan.add( new Checkbox(one, null, true) ); pan.add( new Checkbox(two, null, fa

19、lse) ); pan.add( new Checkbox(three, null, false) );AWT的顯示組件(Label)靜態(tài)文字,多用于指示信息,無事件。單行文本區(qū)(TextField)ponent只能顯示一行信息,當按回車鍵后,會產(chǎn)生ActionEvent事件,可以用ActionListener來。文本輸入?yún)^(qū)(TextArea) ponent可以顯示多行信息,并且有滾動條支持。按回車鍵后并不產(chǎn)生事件,如果要判斷是否完成輸入,需要用其他方法,如用一個結(jié)束按鈕。列表(List)列表提供了很多文本選項,可以同時看到多項,也有滾動條的支持,并且可以單選或多選。當用戶單選或多選時,會產(chǎn)生

20、ItemEvent事件。Demo:顯示組件/ Text F i e l dText F i e l dtf 1 ,tf 2 ,tf 3 ,tf 4 ;tf 1 = new Text F i e l d() ;/a b ltextf i e l df i e l d oftf 2 tf 3 tf 4=new new newText F i e l d( ,20) ;/b l20 co l umnsText F i e l d( o! ) ;/ predef i nedtextd i sp l ayedText F i e l d( o ,30) ;/ predef i nedtexti n 30

21、 co l umnsAWT的組件滾動條(Scrollbar)滾動條一般不單獨使用,它通常與另一個組件聯(lián)合使用,用以指示另一個組件的變化情況。一般情況下,它可以用ScrollPane代替。畫布(Canvas)畫布類在使用時必須被繼承,它本身并不做任何事情,它只是在屏幕上生成了一個矩形空白區(qū)域,使應(yīng)用程序能夠在上面任意作畫,如寫文字、畫各種圖形、接收鍵盤或鼠標輸入等。如果想在畫布上完成圖畫功能,必須重寫其pa()方法。各種鼠標、鍵盤事件,只需實現(xiàn)KeyListener、畫布MouseMotionListener和MouseListener接口即可。當在畫布中輸入字符時,必須先調(diào)用requestFo

22、ucus()方法為畫布獲得輸入焦點,一般在mouseClicked()方法中調(diào)用該方法。AWT的組件菜單菜單與其他組件不同,無法直接添加到容器的某一位置,也無法用布局管理器對其加以控制,它由以下概念支撐:菜單條(Bar)只能添加到Frame中(用setBar()),作為擺放菜單的容器。菜單()菜單項容器,負責(zé)顯示并控制其中的菜單項。它支持菜單嵌套。菜單項(Item)真正的動作,可以用ActionListener復(fù)選框菜單項(Checkbox真正的動作, 可以用ItemListener其事件(ActionEvent)。Item)其事件(ItemEvent)。彈出式菜單(Popup)與菜單相似,也

23、是菜單項容器。AWT的組件用戶可以從Component中繼承來創(chuàng)建自己的輕量級組件,此時,在新的組件中一般要實現(xiàn)(重寫)以下方法:構(gòu)造方法:如果組件要響應(yīng)事件(如鼠標按鍵),構(gòu)造方法中必須調(diào)用enab l eEvents()方法;更改組件狀態(tài)的方法:比如setText()方法等,在這些方法中,如果狀態(tài)的變化引起了組件外觀的變化,則需要調(diào)用repa()方法,如果組件的尺寸發(fā)生了變化,則在調(diào)用repa invalidate()方法;()方法前還需要調(diào)用AWT的組件組件的繪制方法:pa(),還包括組件最佳尺寸getPreferredSize()和最小尺寸getMinimumSize()方法等。組件的

24、事件器方法和取消方法:addAct i onL i stener()和removeAct i onL i stener(),在這兩個方法中要調(diào)用AWTEvent Mu l t i caster現(xiàn);contains()方法:類中的方法來實如果組件只響應(yīng)一定區(qū)域中發(fā)生的事件;組件狀態(tài)改變及事件產(chǎn)生方法:prosX(),如prosMouseEvent()組件的應(yīng)用菜單畫布單行文本輸入?yún)^(qū)按鈕復(fù)選框下拉式菜單列表文本輸入?yún)^(qū)版面布局版面布局為了使生成的圖形用戶界面具有良好的無關(guān)性,Java語言提供了布局管理器來管理組件在容器中的布局,而不使用直接設(shè)置組件的位置和大小的方式。每個容器都要一個布局管理器,容器

25、中組件的定位都由它來決定。當容器需要對某個組件進行定位時,就會調(diào)用其對應(yīng)的布局管理器。版面布局在程序中安排組件的位置和大小時,應(yīng)注意:容器中布局管理器負責(zé)各組件的大小和位置,用戶無法在這種情況下設(shè)置組件的這些屬性,如試圖調(diào)用 setLocation(), setSize(), setBounds()等。如果用戶確實需要自己設(shè)置組件的大小和位置,則應(yīng)取消該容器的布局管理器,方法為:setLayout(null)但用戶必須使用setLocation(), setSize(), setBounds()等方法為組件設(shè)置大小和位置,不過程序?qū)⑾到y(tǒng)相關(guān)。版面布局在容器中所有組件的布局都由布局管理器來控制,

26、每個容器,如Panel、Windows或Frame都有各自缺省的布局管理器,程序員也可以在程序中指定一個新的布局管理器。Java語言中包含五種布局管理器:FlowLayout:Panel和Applet的缺省布局管理器BorderLayout:Window、Dialog和Frame的缺省布局管理器GridLayoutCardLayoutGridBagLayout版面布局FlowLayout布局方式是將組件一排一排地依次放置,它自動調(diào)用組件的getPreferredSize()方法,使用組件的最佳尺寸來顯示組件。當容器被重新設(shè)置大小后,則布局也會隨之發(fā)生改變:各組件的大小不變,但相對位置會發(fā)生變化

27、。FlowLayout類有三種構(gòu)造方法:pub li cF l owLayout ()使用缺省居中對齊方式,組件間的水平和豎直間距為缺省值5個象素。pub li c F l owLayout (a li gnment )使用指定的對齊方式(F l owLayout. LEFT,F(xiàn) l owLayout. RIGHT ,enter),水平和豎直間距為缺省值5象素。F l owLayopub li cF l owLayout (a li gnmen t, hor i zonta l Gap,ver t i ca l Gap)使用指定的對齊方式,水平和豎直間距也為指定值。Demo: flowlayo

28、utpublic class FlowWindow extends Framepublic FlowWindow()FlowLayout() );t(Helvetica, Font.PLAIN, 14);Button 1);add(new Button(2);add(new Button(Button 3);add(new Button(Long-Named Button 4); add(new Button(Button 5);publichandleEvent(Event e)if (e.id = Event.WINDOW_DESTROY) System.exit(0);return su

29、per.handleEvent(e);public sic void main(String args)FlowWindow window = new FlowWindow(); window.setTitle(FlowWindow Application);windock();window.show();setLayout( new setFont(new Fond(new Button(版面布局BorderLayout布局方式提供了更復(fù)雜的布局控制方法,它包括5個區(qū)域:North, South, East, West和Center,其方位依據(jù)上北下南左。當容器的尺寸發(fā)生變化時,各組件的相對

30、位置不變,但中間部分組件的尺寸會發(fā)生變化,南北組件的高度不變,東西組件的寬度不變。BorderLayout類有二種構(gòu)造方法:pub li cBorderLayout ()各組件間的水平和豎直間距為缺省值0個象素。pub li cBorderLayout (hor i zonta l Gap,ver t i ca l Gap)各組件間的水平和豎直間距為指定值。版面布局如果容器使用了BorderLayout布局方式,則用add()方法往容器中添加組件時必須指明添加的位置,否則組件將無法正確顯示(不同的布局管理器,向容器中添加組件的方法也不同)。add(“West”, new Button(“Wes

31、t”);add(“North”, new Button(“North”);add(new Button(“West”), BorderLayout.SOUTH); 若沒有指明放置位置,則表明為默認得“Center”方位。每個區(qū)域只能添加一個組件,若添加多個,則只能顯示一個。如果想在一個區(qū)域添加多個組件,則必須先在該區(qū)域放一個容器,再將多個組件放在該容器中。若每個區(qū)域或若干個區(qū)域沒有放置組件,東西南北區(qū)域?qū)⒉粫蓄A(yù)留,而中間區(qū)域?qū)⒅每?。Demo:borderlayoutpublic class BorderWindow extends Framepublic BorderWindow()setL

32、ayout(new BorderLayout(5,5); setFont(new Font(Helvetica, Font.PLAIN, 14);add(North, new Button(North);add(South, new Button(South);add(East, new Button(East);add(West, new Button(West); add(Center, new Button(Center);publichandleEvent(Event e)if (e.id = Event.WINDOW_DESTROY) System.exit(0);return su

33、per.handleEvent(e);public sic void main(String args)BorderWindow window = new BorderWindow(); window.setTitle(BorderWindow Application); windock();window.show();版面布局GridLayout布局方式可以使容器中的各組件呈網(wǎng)格狀分布。容器中各組件的高度和寬度相同,當容器的尺寸發(fā)生變化時,各組件的相對位置不變,但各自的尺寸會發(fā)生變化。各組件的排列方式為:從上到下,從左到右。與BorderLayout類相類似,如果想在一個網(wǎng)格單元中添加多個組

34、件,則必須先在該網(wǎng)格單元放一個容器,再將多個組件放在該容器中。版面布局GridLayout類有三種構(gòu)造方法:pub li cGr i dLayout ()在一行中放置所有的組件,各組件間的水平間距為0象素。pub li c Gr i dLayout (rows,co l s)生成一個rows行,co l s列的管理器,最多能放置rows*co l s個組件。rows或co l s可以有一個為0。若rows為0,這表示每行放置co l s個組件,根據(jù)具體組件數(shù),可以有任意多行;若co l s為0,這表示共有rows行,根據(jù)具體組件數(shù),每行可以放置任意多個組件組件間的水平和豎直間距為0象素。pub

35、 li c Gr i dLayout ( ver t i ca l Gap )rows,co l s,hor i zonta l Gap,Demo:gridlayoutpublic class GridWindow extends Framepublic GridWindow()tLayout(new GridLayout(0,2);tFont(new Font(Helvetica, Font.PLAIN, 14);d(new Button(Button 1);add(new Button(2);add(new Button(Button 3);add(new Button(Long-Name

36、d Button 4); add(new Button(Button 5);publichandleEvent(Event e)if (e.id = Event.WINDOW_DESTROY) System.exit(0);return super.handleEvent(e);public sic void main(String args)GridWindow window = new GridWindow(); window.setTitle(GridWindow Application);windock();window.show();版面布局CardLayout布局方式可以幫助用戶處

37、理兩個或的組件共享同一顯示空間。共享空間的組件之間的關(guān)系就像一摞牌一樣,它們摞在一起,只有最上面的組件是可見的。CardLayout可以象換牌一樣處理這些共享空間的組件:為每定義一個名字,可按名字選牌;可以按順序向前或向后翻牌;也可以直接選第一張或最后一。arent,St r i ng arent )pub li c pub li c pub li c pub li c pub li cvo i d vo i d vo i d vo i d vo i dshow(Conta i n next (Conta i nname)prev i ous(Conta i n(Conta i narent

38、) arent )l ast (Conta i narent )其中,Conta i ner是擁有該CardLayout布局管理器的容器。版面布局CardLayout類有二種構(gòu)造方法:pub li cCardLayout ()組件距容器左右邊界和上下邊界的距離為缺省值0個象素。pub li cCardLayout (hor i zonta l Gap,ver t i ca l Gap)組件距容器左右邊界和上下邊界的距離為指定值。與BorderLayout類和GridLayout類相類似,每中只能放置一個組件,如果想在一放置多個組件,則必須先在該牌放一個容器,再將多個組件放在該容器中。采用Car

39、dLayout布局方式時,向容器中添加組件時可以為組件取一個名字,以供更換顯示組件時使用:add(Component, String);版面布局GridBagLayout布局方式是AWT中最靈活、同時也是最復(fù)雜的一種布局方式。與GridLayout相同,它也是將容器中的組件按照行、列的方式放置,但各組件所占的空間可以互不相同。GridBagLayout根據(jù)對每個組件所施加的空間限制、每個組件自身所設(shè)定的最小尺寸和最佳尺寸來為每個組件分配空間。對組件施加空間限制是通過類GridBagConstra來實現(xiàn)的。s版面布局類GridBagConstras中提供了一些相應(yīng)的屬性和常量來設(shè)置對組件的空間限

40、制:gridx, gridygridwidth, gridheightfillipadx, ipadyinsetsarchorweightx, weighty版面布局(1) gridx, gridy()gridx指明組件顯示區(qū)域左端在容器中的位置,若為0,則組件處于最左端的單元。它是一個非負的整數(shù),其缺省值為 Gr i dBagConst ras. RELATIVE,表明把組件放一個添加到容器中的組件的右端。gridy指明組件顯示區(qū)域上端在容器中的位置,若為0,則組件處于最上端的單元。它是一個非負的整數(shù),其缺省值為 Gr i dBagConst ras. RELATIVE,表明把組件放一個添加

41、到容器中的組件的下端。版面布局(2)gridwidth, gridheight ()gridwidth指明組件顯示區(qū)在一行中所占的網(wǎng)格單元數(shù)(寬度)。它是一個非負的整數(shù),其缺省值為 1。若其值為 Gr i dBagConst ras. REMAINDER,表明該組件是一行中最后一個組件;若其值為Gr i dBagConst ra該組件緊挨著該行中最后一個組件。s. RELATIVE,表明gridheight指明組件顯示區(qū)在一列中所占的網(wǎng)格單元數(shù)(高度)。它是一個非負的整數(shù),其缺省值為 1。若其值為 Gr i dBagConst ras. REMAINDER,表明該組件是一列中最后一個組件;若其

42、值為Gr i dBagConst ra該組件緊挨著該列中最后一個組件。s. RELATIVE,表明版面布局(3)fill ()fill屬性指明當組件所在的網(wǎng)格單元的區(qū)域大于組件所請求的區(qū)域時,是否改變組件的尺寸:是按照水平方向填滿顯示區(qū),還是按垂直方向填滿顯示區(qū),其取值可為:Gr i dBagConst ra兩個方向都不填滿;Gr i dBagConst ra示區(qū),高度不變;Gr i dBagConst ra區(qū),寬度不變;Gr i dBagConst ras. NONE:缺省值,保持原有尺寸,s. HORIZONTAL:按水平方向填滿顯s. VERTICAL:按垂直方向填滿顯示s. BOTH:

43、兩個方向上都填滿顯示區(qū)。版面布局(4)ipadx, ipady ()ipadx指明組件的寬度與指定的最小寬度之間的關(guān)系:組 件的寬度為“ 指定的最小寬度 ipadx*2 ”。其缺省值為0。ipady指明組件的高度與指定的最小高度之間的關(guān)系:組 件的高度為“ 指定的最小高度 ipady*2 ”。其缺省值為0。版面布局insets (Insets)insets指明了組件與其顯示區(qū)邊緣之間的距離,大小由一個Insets對象指定。Insets類有四個屬性:top:上端間距bottom:下端間距l(xiāng)eft:左端間距right:右端間距其缺省值為一個上述四個屬性值都為0的對象:new Insets(0, 0

44、, 0, 0);版面布局(6)archor ()archor屬性指明了當組件的尺寸小于其顯示區(qū)時,在顯示區(qū)中如何放置改組件的位置,其值可為:Gr i dBagConst ra Gr i dBagConst ra Gr i dBagConst ra Gr i dBagConst ra Gr i dBagConst ra Gr i dBagConst ra Gr i dBagConst ra Gr i dBagConst ra Gr i dBagConst ras. CENTER(缺省值)s. NORTHs. NORTHEAST s. EASTs. SOUTHEAST s. SOUTHs. SOU

45、THWEST s. WESTs. NORTHWEST版面布局(7)weightx, weighty(double)weightx指明當容器擴大時,如何在列間為組件分的空間,其值可以從0.0到1.0,缺省值為0.0。weighty指明當容器擴大時,如何在行間為組件分的空間,其值可以從0.0到1.0 ,缺省值為0.0 。外外若兩者都為0,所有組件都團聚在容器的,因為此時所有額外空間都添加在網(wǎng)格單元與容器邊緣之間。數(shù)值越大,表明組件的行或列將占有的額外空間。若兩者都為1.0,表明組件的行或列將占有所有的額外空間。版面布局當一個容器的布局方式為GridBagLayout時,往其中添加一個組件,必須先用GridBagConstras設(shè)置該組件的空間限制。/在一個容器中GridBagLayout g = new GridBagLayout(); GridBagConstras c = new GridBagConstras(); setLayout( g );Button b = new Button(“Test”); c.fill = /設(shè)置c的值/生成組件bg.setConstra add( b );s( b, c );/根據(jù)c的值對組件b進行

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論