箱式布局比較靈活俱萍,也比較實(shí)用。Swing提供的BOX類就是箱式布局類痊剖,它的默認(rèn)布局管理器就是BoxLayout韩玩,在箱式布局管理器中包括兩種箱子:一種是水平箱,另外一種是垂直箱陆馁。
創(chuàng)建一個(gè)水平箱的源代碼如下:
創(chuàng)建一個(gè)垂直箱的源代碼如下:
創(chuàng)建好箱子后找颓,就可以像添加其他組件一樣添加下面的控件,源代碼如下:
兩種箱子的區(qū)別在于組件的排列順序氮惯,水平箱是按照從左到右的順序排列叮雳,而垂直箱按照從上到下的順序排列。對(duì)于箱式布局管理器而言妇汗,最關(guān)鍵的就是每個(gè)組件的3個(gè)尺寸帘不。
l首選尺寸,即組件顯示時(shí)的寬度和高度。
l最大尺寸杨箭,即組件能被顯示的最大寬度和高度寞焙。
l最小尺寸,即組件被顯示的最小高度和最小寬度。
下面是水平箱式布局管理器中組件排列的幾個(gè)重點(diǎn):
l計(jì)算最高組件的最大高度捣郊,嘗試把所有的組件都增加到這個(gè)高度辽狈。如果有某些組件不能達(dá)到此高度,那么要在Y軸上對(duì)齊需要通過(guò)getAlignmentY方法實(shí)現(xiàn)呛牲,該方法返回一個(gè)介于0(按頂部對(duì)齊)和1(按底部對(duì)齊)之間的浮點(diǎn)數(shù)刮萌。組件的默認(rèn)值是0.5,也就是中線對(duì)齊。
l得到每個(gè)組件的首選寬度娘扩,然后把所有的首選寬度合計(jì)起來(lái)着茸。
l如果首選寬度總和小于箱的寬度,那么所有的組件都會(huì)相應(yīng)的延伸琐旁,直到適應(yīng)這個(gè)箱子的寬度涮阔。組件從左到右排列,并且相鄰兩個(gè)組件之間沒(méi)有多余的空格灰殴。