下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、1.布局對(duì)于JFrame窗口,默認(rèn)布局是BorderLayout布局。對(duì)于JPanel,默認(rèn)布局是FlowLayout布局。容器可以使用方法:setLayout(布局對(duì)象);來(lái)設(shè)置自己的布局。(1) FlowLayout布局FlowLayout類創(chuàng)建的對(duì)象稱做FlowLayout型布局。FlowLayout類的一個(gè)常用構(gòu)造方法如下:FlowLayout()該構(gòu)造方法可以創(chuàng)建一個(gè)居中對(duì)齊的布局對(duì)象。例如:FlowLayoutflow=newFlowLayout();如果一個(gè)容器con使用這個(gè)布局對(duì)象:con.setLayout(flow);那么,con可以使用Container類提供的add方法
2、將組件順序地添加到容器中,組件按照加入的先后順序從左向右排列,一行排滿之后就轉(zhuǎn)到下一行繼續(xù)從左至右排列。FlowLayout布局對(duì)象調(diào)用flow.setAlignment(FlowLayout.LEFT)來(lái)設(shè)置組件靠左對(duì)齊FlowLayout布局對(duì)象調(diào)用setHgap(inthgap)方法和setVgap(intvgap)可以重新設(shè)置布局的水平間隙和垂直間隙。(2) BorderLayout布局BorderLayout布局是Window型容器的默認(rèn)布局,例如JFrame、JDialog都是Window類的間接子類,它們的默認(rèn)布局都是BorderLayout布局。容器使用BorderLayout
3、布局,那么容器空間簡(jiǎn)單地劃分為東、西、南、北、中五個(gè)區(qū)域。每加入一個(gè)組件都應(yīng)該指明把這個(gè)組件添加在哪個(gè)區(qū)域中,區(qū)域由BorderLayout中的靜態(tài)常量CENTER、NORTH、SOUTH、WEST、EAST表示.添加到某個(gè)區(qū)域的組件將占據(jù)整個(gè)這個(gè)區(qū)域。每個(gè)區(qū)域只能放置一個(gè)組件,如果向某個(gè)已放置了組件的區(qū)域再放置一個(gè)組件,那么先前的組件將被后者替換掉。(3) CardLayout布局使用CardLayout的容器可以容納多個(gè)組件,但是實(shí)際上同一時(shí)刻容器只能從這些組件中選出一個(gè)來(lái)顯示,這個(gè)被顯示的組件將占據(jù)所有的容器空間。JTabbedPane創(chuàng)建的對(duì)象是一個(gè)輕容器,稱作選項(xiàng)卡窗格。選項(xiàng)卡窗格的
4、默認(rèn)布局是CardLayout卡片式布局。選項(xiàng)卡窗格可以使用:add(Stringtext,Componentc);方法將組件c添加到容器當(dāng)中,并指定和該組件c對(duì)應(yīng)的選項(xiàng)卡的文本提示是text。(4) GridLayout布局GridLayout是使用較多的布局編輯器,其基本布局策略是把容器劃分成若干行乘若干列的網(wǎng)格區(qū)域,組件就位于這些劃分出來(lái)的小格中。1) 使用GridLayout的構(gòu)造方法GridLayout(intm,intn)創(chuàng)建布局對(duì)象,指定劃分網(wǎng)格的行數(shù)m和列數(shù)n,例如:GridLayoutgrid=newnewGridLayout(10,8);2) 使用GridLayout布局的
5、容器調(diào)用方法add將組件加入容器,組件進(jìn)入容器的順序?qū)凑盏谝恍械谝粋€(gè)、第一行第二個(gè)、第一行最后一個(gè)、第二行第一個(gè)、最后一行第一個(gè)、最后一行最后一個(gè)。(5)BoxLayout布局用BoxLayout類可以創(chuàng)建一個(gè)布局對(duì)象,稱為盒式布局。BoxLayout在java.swing.border包中。javaswing包提供了Box類,該類也是Container類的一個(gè)子類,創(chuàng)建的容器稱作一個(gè)盒式容器,盒式容器的的默認(rèn)布局是盒式布局,而且不允許更改盒式容器的布局。因此,在策劃程序的布局時(shí),可以利用容器的嵌套,將某個(gè)容器嵌入幾個(gè)盒式容器,達(dá)到你的布局目的。使用盒式布局的容器將組件排列在一行或一列,這取
6、決于創(chuàng)建盒式布局對(duì)象時(shí),是否指定了是行排列還是列排列。行型盒式布局容器中添加的組件的上沿在同一水平線上。列型盒式布局容器中添加的組件的左沿在同一垂直線上。使用Box類的類(靜態(tài))方法createHorizontalBox()可以獲得一個(gè)具有行型盒式布局的盒式容器;使用Box類的類(靜態(tài))方法createVerticalBox()可以獲得一個(gè)具有列型盒式布局的盒式容器。如果想控制盒式布局容器中組件之間的距離,就需要使用水平支撐或垂直支撐。Box類調(diào)用靜態(tài)方法createHorizontalStrut(intwidth)可以得到一個(gè)不可見的水平Struct類型對(duì)象,稱做水平支撐。該水平支撐的高度為
7、0,寬度是width。Box類調(diào)用靜態(tài)方法createVertialStrut(intheight)可以得到一個(gè)不可見的垂直Struct類型對(duì)象,稱做垂直支撐。參數(shù)height決定垂直支撐的高度,垂直支撐的寬度為0。(6)null布局我們可以把一個(gè)容器的布局設(shè)置為null布局(空布局)。空布局容器可以準(zhǔn)確地定位組件在容器的位置和大小。setBounds(inta,intb,intwidth,intheight)方法是所有組件都擁有的一個(gè)方法,組件調(diào)用該方法可以設(shè)置本身的大小和在容器中的位置。例如,p是某個(gè)容器:p.setLayout(null);把p的布局設(shè)置為空布局。向空布局的容器p添加一個(gè)
8、組件c需要兩個(gè)步驟,首先使用add(c)方法向容器添加組件,然后組件c再調(diào)用setBounds(inta,intb,intwidth,intheight)方法設(shè)置該組件在容器中的位置和本身的大小,組件都是一個(gè)矩形結(jié)構(gòu),方法中的參數(shù)a,b是被添加的組件c的左上角在容器中的位置坐標(biāo),即該組件距容器左面a個(gè)像素,距容器上方b個(gè)像素;weidth,height是組件c的寬和高。2.中間容器-面板(1)JPanel面板我們會(huì)經(jīng)常使用JPanel創(chuàng)建一個(gè)面板,再向這個(gè)面板添加組件,然后把這個(gè)面板添加到底層容器或其他中間容器中oJPanel面板的默認(rèn)布局是FlowLayout布局。可以使用JPanel類構(gòu)造
9、方法JPanel()構(gòu)造一個(gè)面板容器對(duì)象(2)JScrollPane滾動(dòng)窗格我們可以把一個(gè)組件放到一個(gè)滾動(dòng)窗格中,然后通過(guò)滾動(dòng)條來(lái)觀察這個(gè)組件。例如,JTextArea不自帶滾動(dòng)條,因此我們就需要把文本區(qū)放到一個(gè)滾動(dòng)窗格中。可以使用JScorollPane的構(gòu)造方法JScorollPane(componentc)構(gòu)造一個(gè)滾動(dòng)窗格。(3)JSplitPane拆分窗格顧名思義,拆分窗格就是被分成兩部分的容器。拆分窗格有兩種類型:水平拆分和垂直拆分。水平拆分窗口用一條拆分線把容器分成左右兩部分,左面放一個(gè)組件,右面放一個(gè)組件,拆分線可以水平移動(dòng)。垂直拆分窗格由一條拆分線分成上下兩部分,上面放一個(gè)組件
10、,下面放一個(gè)組件,拆分線可以垂直移動(dòng)。可以使用JSplitPane的構(gòu)造方法JSplitPane(inta,ComponentbComponentc)構(gòu)造一個(gè)拆分窗格,參數(shù)a取JSplitPane的靜態(tài)常量HORIZONTAL_SPLIT或VERTICAL_SPLIT,以決定是水平還是垂直拆分。后兩個(gè)參數(shù)決定要放置的組件。拆分窗格調(diào)用setDividerLocation(doubleposition)設(shè)置拆分線的位置。(4)JLayeredPane分層窗格如果添加到容器中的組件經(jīng)常需要處理重疊問題,就可以考慮將組件添加到JLayeredPane容器。JLayeredPane容器將容器分成5個(gè)層,容器使用add(Jcomponentcom,intlayer);添加組件com,并指定com所在的層,其中參數(shù)layer取值JLayeredPane類中的類常量:DEFAULT_LAYER、PALETTE_LAYER、MODAL_LAYER、POPUP_LAYER、DRAG_LAYER。DEFAULT_LAYER是最底層,添加到DEFAULT_LAYER層的組件如果和其它層的組件發(fā)生重疊時(shí),將被其它組件遮擋。DRAG_LAYER層是最上面的層,如果JLayeredPane中添加了許多組件,當(dāng)你用鼠標(biāo)移動(dòng)一組件時(shí),可以把移動(dòng)的組件放到DRAG_LAY
溫馨提示
- 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年商業(yè)委托銷售協(xié)議
- 2025年合法住房公租房協(xié)議
- 二零二五年度駕校品牌推廣與市場(chǎng)拓展合作合同2篇
- 2025年度個(gè)人二手車轉(zhuǎn)讓及二手車增值服務(wù)合同3篇
- 二零二五年度集體產(chǎn)權(quán)房屋買賣合同樣本(含房屋產(chǎn)權(quán)調(diào)查及核實(shí)要求)
- 二零二五年度運(yùn)輸保險(xiǎn)合同匯編與風(fēng)險(xiǎn)保障方案
- 二零二五年度股東之間股權(quán)轉(zhuǎn)讓與增資擴(kuò)股合同書
- 2025年度工廠生產(chǎn)管理費(fèi)合同模板新
- 2025年度新能源物流運(yùn)輸合作協(xié)議
- 二零二五年度簡(jiǎn)易消防演練組織與評(píng)估合同
- 《醫(yī)院財(cái)務(wù)分析報(bào)告》課件
- 2025老年公寓合同管理制度
- 2024-2025學(xué)年人教版數(shù)學(xué)六年級(jí)上冊(cè) 期末綜合卷(含答案)
- 2024中國(guó)汽車后市場(chǎng)年度發(fā)展報(bào)告
- 感染性腹瀉的護(hù)理查房
- 天津市部分區(qū)2023-2024學(xué)年高二上學(xué)期期末考試 物理 含解析
- 《人工智能基礎(chǔ)》全套英語(yǔ)教學(xué)課件(共7章)
- 廢鐵收購(gòu)廠管理制度
- 物品賠償單范本
- 《水和廢水監(jiān)測(cè)》課件
- 滬教版六年級(jí)數(shù)學(xué)下冊(cè)課件【全冊(cè)】
評(píng)論
0/150
提交評(píng)論