?
Java Swing 中的 GridBagLayout 中的布局太復雜,參數很多,不太理解其中的意思,總是布局不出想要的效果。前幾天在網上搜到了 tablelayout 布局管理器,發現很簡單,很強大。
?
?
下面,我來介紹一下 tablelayout 的用法。
?
首先, tablelayout 不是 JDK 中自帶的,需要導入第三方的 jar 包(本文已經給出,見附件)。源碼和例子已經在這個 jar 包中了。
使用 tablelayout 現要 import 兩個類:
?
import layout.TableLayout; import layout.TableLayoutConstraints;
?
? TableLayout ,顧名思義,就是表格布局管理器。見下圖:
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
表格的行和列都是從 0 開始計算。上圖中,左上角的單元格坐標為( 0,0 ),右下角的單元格坐標為( 3,4 )。一個單元格的坐標為(列號,行號)。
?
1. ? ? TableLayout 的行列的分配
一般來說,創建 tablelayout 要先設定行和列。我們定義一個 double 類型的二維數組 size[][] 。
?
double size[][] = {{100, 0.50, 0.20, TableLayout.FILL, 200, TableLayout.FILL}, {TableLayout.FILL}};
? 在上面的代碼中, size[0] 中存放的是列的寬度, size[1] 中存放的是行的高度;數組中的整數表示該單元格的寬度或高度為多少像素,小數表示該單元格的寬度或高度為剩余空間的百分之多少, TableLayout.FILL 表示將剩余的空間填滿,如果出現多個 TableLayout.FILL ,則這幾個單元格平分剩余的空間。假設這個容器有 500 像素寬,則在上面的例子中,第 0 列的寬度為 100 像素,第 1 列寬度為 100 ,第 2 列為( 500-100-200 ) *0.5=40 ,第 3 列為( 500-100-200 ) *0.3/2=30 ,第 4 列為 200 ,第 5 列同第 3 列,為 30 。
?
2. ?????? 創建一個 tablelayout
創建 tablelayout 就和其他布局管理器一樣了,直接 new 一個 TableLayout 。
如下:
?
new TableLayout(size);
?
3. ?????? 為容器添加組件
?
使用 add 方法, add( 組件,“坐標” ) ,例如給 frame 添加 button :
?
frame.add(button,”0,0”);
?
如果這個 button 橫跨多個單元格,計算順序是從左上到右下,則字符串的前兩個放第一格的坐標,后兩個行最后一格的坐標,例如,從( 0,0 )到( 3,4 ),表示為:
?
frame.add(button,”0,0,3,4”);
?
?
?
好了, tablelayout 就介紹完了,很簡單吧。
?
?
?
?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
