資源描述:
《java圖形界面之布局設計_java教程》由會員上傳分享,免費在線閱讀,更多相關內(nèi)容在工程資料-天天文庫。
1、Java圖形界ifliZ布局設計_Java教程在界面設計中,一個容器要放置許多組件,為了美觀,為組件安排在容器中的位置,這就是布局設計。java.awt屮定義了多種布局類,每種布局類對應一種布局的策略。常用的有以下布局類:?FlowLayout,依次放置組件。?BoarderLayout,將組件放置在邊界上。?CardLayout,將組件像撲克牌一樣疊放,而每次只能顯示其中一個組件。?GridLayout,將顯示區(qū)域按行、列劃分成一個個相等的格子,組件依次放入這些格子中。?GridBagLayout,將顯示區(qū)域劃分成許多矩形小單元,每個組件可占用一個或多個小單yco英中GridB
2、agLayout能進行精細的位置控制,也最復雜,木教程暫不討論這種布局策略,將在專題文章中進行詳細講解。每個容器都冇一個布局管理器,由它來決定如何安排放入容器內(nèi)的的組件。布局管理器是實現(xiàn)LayoutManager接口的類。一.FlowLayout布局(JApplet,JPanel,JScrollPane默認布局)FlowLayout布局是將其中的組件按照加入的先后順序從左到右排列,一行滿之后就轉到一下行繼續(xù)從左到右排列,每一行中的組件都居中排列。這是一種最簡便的布局策略,一般用于組件不多的情況,當組件較多時,容器中的組件就會顯得高低不平,各行長短不一。FlowLayout是小應用
3、程序和面板默認布局,F(xiàn)lowLayout布局的構造方法有:1.FlowLayout(),生成一個默認的FlowLayout布局。默認情況下,組件居中,間隙為5個像素。2.FlowLayout(intaligment),設定每王彳亍的組件的對齊方式。alignment取值可以為FlowLayout.LEFT,FlowLayout.CENTER,FlowLayout.RIGHTo3.FlowLayout(intaligment,inthorz,intvert),設定對齊方式,并設定組件的水平間距horz和垂直間距ven,用超類Container的方法selLayouM)為容器設定布局
4、。例如,代碼sctLayout(ncwFlowLayoutO)為容器設定FlowLayout布局。將組件加入容器的方法是add(組件名)。二BorderLayout布局(JWindow^JFrame,JDialog的默認布局)BorderLayout布局策略是把容器內(nèi)的空間簡單劃分為東“Eas匚西“West",南“South",北“North",中“Center"五個區(qū)域。加入組件時,都應該指明把組件放在哪一個區(qū)域中。一個位置放一個組件。如果某個位置耍加入多個組件,應先將要加入該位置的組件放放另一個容器中,然后再將這個容器加入到這個個位置。BorderLayout布局的構造方法有
5、:(1)BorderLayout(),4成一個默認的BorderLayout布局。默認情況卜,沒有間隙。⑵BorderLayout(inthorz,intveil),設定組件Z間的水平間距和垂直間距。BorderLayout布局策略的設定方法是setLayout(newBorderLayout())o將紐件加入到容器的方法是add(組件名,位置),如果加入組件吋沒有指定位置,則默認為“中”位置。BorderLayout布局是JWindowJFrameJDialog的默認布局。【例11-5]應用程序設有五個標簽、分別放于窗口的東、西、南、北和中五個區(qū)域(查看源文件)。三.Grid
6、Layout布局GridLayout布局是把容器劃分成若干行和列的網(wǎng)格狀,行數(shù)和列數(shù)由程序控制,組件放在網(wǎng)格的小格了小。GridLayout布局的特點是組件定位比較精確。由于GridLayout布局中每個網(wǎng)格具有相同形狀和人小,要求放入容器的組件也應保持相同的人小。GridLayout布局的構造方法有:⑴GridLayout(),生成一個單列的GridLayout布局。默認情況下,無間隙。(2)GridLayout(introw,intcol),設定一個有行row和列col的GridLayout布局。⑶GridLayout(introw,intcol,inthorz,intven
7、),設定布局的彳亍數(shù)和列數(shù)、組件的水平間距和垂直間距。GridLayout局以行為基準,當放置的組件個數(shù)超額時,自動增加列;反乙組件A少也會H動減少列,行數(shù)不變,組件按行優(yōu)先順序排列(根據(jù)組件白動增減列)。GridLayout布局的每個網(wǎng)格必須填入組件,如果希望某個網(wǎng)格為空白,可以用-?個空白標簽(add(newLabel()))頂替。【例11-6】小應用程序先將若干個按鈕和若干個標簽放入JPanel中,然后將JPanel放入JScrollPane中,最后,將JScrollPan