JAVA圖形界面各種布局及使用方法_第1頁
JAVA圖形界面各種布局及使用方法_第2頁
全文預覽已結(jié)束

下載本文檔

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

文檔簡介

1、1.布局對于JFrame窗口,默認布局是BorderLayout布局。對于JPanel,默認布局是FlowLayout布局。容器可以使用方法:setLayout(布局對象);來設(shè)置自己的布局。(1) FlowLayout布局FlowLayout類創(chuàng)建的對象稱做FlowLayout型布局。FlowLayout類的一個常用構(gòu)造方法如下:FlowLayout()該構(gòu)造方法可以創(chuàng)建一個居中對齊的布局對象。例如:FlowLayoutflow=newFlowLayout();如果一個容器con使用這個布局對象:con.setLayout(flow);那么,con可以使用Container類提供的add方法

2、將組件順序地添加到容器中,組件按照加入的先后順序從左向右排列,一行排滿之后就轉(zhuǎn)到下一行繼續(xù)從左至右排列。FlowLayout布局對象調(diào)用flow.setAlignment(FlowLayout.LEFT)來設(shè)置組件靠左對齊FlowLayout布局對象調(diào)用setHgap(inthgap)方法和setVgap(intvgap)可以重新設(shè)置布局的水平間隙和垂直間隙。(2) BorderLayout布局BorderLayout布局是Window型容器的默認布局,例如JFrame、JDialog都是Window類的間接子類,它們的默認布局都是BorderLayout布局。容器使用BorderLayout

3、布局,那么容器空間簡單地劃分為東、西、南、北、中五個區(qū)域。每加入一個組件都應該指明把這個組件添加在哪個區(qū)域中,區(qū)域由BorderLayout中的靜態(tài)常量CENTER、NORTH、SOUTH、WEST、EAST表示.添加到某個區(qū)域的組件將占據(jù)整個這個區(qū)域。每個區(qū)域只能放置一個組件,如果向某個已放置了組件的區(qū)域再放置一個組件,那么先前的組件將被后者替換掉。(3) CardLayout布局使用CardLayout的容器可以容納多個組件,但是實際上同一時刻容器只能從這些組件中選出一個來顯示,這個被顯示的組件將占據(jù)所有的容器空間。JTabbedPane創(chuàng)建的對象是一個輕容器,稱作選項卡窗格。選項卡窗格的

4、默認布局是CardLayout卡片式布局。選項卡窗格可以使用:add(Stringtext,Componentc);方法將組件c添加到容器當中,并指定和該組件c對應的選項卡的文本提示是text。(4) GridLayout布局GridLayout是使用較多的布局編輯器,其基本布局策略是把容器劃分成若干行乘若干列的網(wǎng)格區(qū)域,組件就位于這些劃分出來的小格中。1) 使用GridLayout的構(gòu)造方法GridLayout(intm,intn)創(chuàng)建布局對象,指定劃分網(wǎng)格的行數(shù)m和列數(shù)n,例如:GridLayoutgrid=newnewGridLayout(10,8);2) 使用GridLayout布局的

5、容器調(diào)用方法add將組件加入容器,組件進入容器的順序?qū)凑盏谝恍械谝粋€、第一行第二個、第一行最后一個、第二行第一個、最后一行第一個、最后一行最后一個。(5)BoxLayout布局用BoxLayout類可以創(chuàng)建一個布局對象,稱為盒式布局。BoxLayout在java.swing.border包中。javaswing包提供了Box類,該類也是Container類的一個子類,創(chuàng)建的容器稱作一個盒式容器,盒式容器的的默認布局是盒式布局,而且不允許更改盒式容器的布局。因此,在策劃程序的布局時,可以利用容器的嵌套,將某個容器嵌入幾個盒式容器,達到你的布局目的。使用盒式布局的容器將組件排列在一行或一列,這取

6、決于創(chuàng)建盒式布局對象時,是否指定了是行排列還是列排列。行型盒式布局容器中添加的組件的上沿在同一水平線上。列型盒式布局容器中添加的組件的左沿在同一垂直線上。使用Box類的類(靜態(tài))方法createHorizontalBox()可以獲得一個具有行型盒式布局的盒式容器;使用Box類的類(靜態(tài))方法createVerticalBox()可以獲得一個具有列型盒式布局的盒式容器。如果想控制盒式布局容器中組件之間的距離,就需要使用水平支撐或垂直支撐。Box類調(diào)用靜態(tài)方法createHorizontalStrut(intwidth)可以得到一個不可見的水平Struct類型對象,稱做水平支撐。該水平支撐的高度為

7、0,寬度是width。Box類調(diào)用靜態(tài)方法createVertialStrut(intheight)可以得到一個不可見的垂直Struct類型對象,稱做垂直支撐。參數(shù)height決定垂直支撐的高度,垂直支撐的寬度為0。(6)null布局我們可以把一個容器的布局設(shè)置為null布局(空布局)。空布局容器可以準確地定位組件在容器的位置和大小。setBounds(inta,intb,intwidth,intheight)方法是所有組件都擁有的一個方法,組件調(diào)用該方法可以設(shè)置本身的大小和在容器中的位置。例如,p是某個容器:p.setLayout(null);把p的布局設(shè)置為空布局。向空布局的容器p添加一個

8、組件c需要兩個步驟,首先使用add(c)方法向容器添加組件,然后組件c再調(diào)用setBounds(inta,intb,intwidth,intheight)方法設(shè)置該組件在容器中的位置和本身的大小,組件都是一個矩形結(jié)構(gòu),方法中的參數(shù)a,b是被添加的組件c的左上角在容器中的位置坐標,即該組件距容器左面a個像素,距容器上方b個像素;weidth,height是組件c的寬和高。2.中間容器-面板(1)JPanel面板我們會經(jīng)常使用JPanel創(chuàng)建一個面板,再向這個面板添加組件,然后把這個面板添加到底層容器或其他中間容器中oJPanel面板的默認布局是FlowLayout布局??梢允褂肑Panel類構(gòu)造

9、方法JPanel()構(gòu)造一個面板容器對象(2)JScrollPane滾動窗格我們可以把一個組件放到一個滾動窗格中,然后通過滾動條來觀察這個組件。例如,JTextArea不自帶滾動條,因此我們就需要把文本區(qū)放到一個滾動窗格中??梢允褂肑ScorollPane的構(gòu)造方法JScorollPane(componentc)構(gòu)造一個滾動窗格。(3)JSplitPane拆分窗格顧名思義,拆分窗格就是被分成兩部分的容器。拆分窗格有兩種類型:水平拆分和垂直拆分。水平拆分窗口用一條拆分線把容器分成左右兩部分,左面放一個組件,右面放一個組件,拆分線可以水平移動。垂直拆分窗格由一條拆分線分成上下兩部分,上面放一個組件

10、,下面放一個組件,拆分線可以垂直移動??梢允褂肑SplitPane的構(gòu)造方法JSplitPane(inta,ComponentbComponentc)構(gòu)造一個拆分窗格,參數(shù)a取JSplitPane的靜態(tài)常量HORIZONTAL_SPLIT或VERTICAL_SPLIT,以決定是水平還是垂直拆分。后兩個參數(shù)決定要放置的組件。拆分窗格調(diào)用setDividerLocation(doubleposition)設(shè)置拆分線的位置。(4)JLayeredPane分層窗格如果添加到容器中的組件經(jīng)常需要處理重疊問題,就可以考慮將組件添加到JLayeredPane容器。JLayeredPane容器將容器分成5個層,容器使用add(Jcomponentcom,intlayer);添加組件com,并指定com所在的層,其中參數(shù)layer取值JLayeredPane類中的類常量:DEFAULT_LAYER、PALETTE_LAYER、MODAL_LAYER、POPUP_LAYER、DRAG_LAYER。DEFAULT_LAYER是最底層,添加到DEFAULT_LAYER層的組件如果和其它層的組件發(fā)生重疊時,將被其它組件遮擋。DRAG_LAYER層是最上面的層,如果JLayeredPane中添加了許多組件,當你用鼠標移動一組件時,可以把移動的組件放到DRAG_LAY

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論