從JGoodies Forms Cheat sheet中淺談JGoodies Forms


我利用這張二圖快速解說一下在Forms中Column & Row 的字串是如何運作的...
語法解析
首先以下面這個程式小片斷來說
new FormLayout( “columnSpec [,columnSpec,..]”,
“rowSpec [,rowSpec]” );
FormLayout layout = new FormLayout(“pref, 4dlu, 50dlu, 4dlu, min”, // columns在利用FormLayout佈局時必須先指明行與列的排列(對齊)方式,而具體的內容就是
“pref, 2dlu, pref, 2dlu, pref” ); // rows
columnSpec
[columnAlignment:] size [:resizeBehaviour]
rowSpec
[rowAlignment:] size [:resizeBehaviour]
在裡頭,元件排列方式 [columnAlignment:]與元件縮放行為 [:resizeBehaviour]是不一定要有的參數,不過size就一定要有(沒有指明的話,預設上會使用pref - 最適當大小)。
排列(對齊)方式分別有:
LEFT | CENTER | RIGHT | FILL | L | C | R | F
而大小 (size)的代表參數有:
constantSize | componentSize | boundedSize這三個分別代表著固定大小、元件大小、有界限(範圍)的大小
首先固定大小,我利用這張圖來說明它的內容...

固定大小
可以使用的固定大小單位有上圖這幾項,其中Point , Millimeter , Centimeter , Inches 接受螢幕解析度控制。而Dialog使用的是字型單位刻度,字型大小也是。一般來說,應該避免使用到像素大小。因為,如果解析度或Dialog字型改變,顯示的比例將會產生變化。大部分固定大小的單位使用Dialog。使用Dialog可以幫助你,為一個大型的應用程式環境保留比例,這是在多平台(multi-platform) 應用程式中特別重要的。元件大小
一個必要的佈局管理員特色是:能夠針對元件的最小和最適當的寬度與高度,進而調整行與列的大小。Forms提供了三個方式,去描繪出這些元件的大小。Min表示,能夠呈現...元件可以顯示的最小值(大小)。而Pref就是元件最適當的寬度/高度。Default像是Pref,但是如果容器空間不足會向下收縮到Min。下列二圖說明此含意...

有界限(範圍)的大小
Bounded Size能為行或列的初始大小(在大小縮放前)指明一個較低或較高的範圍。它可以被使用去保証一個最小或最大行寬。例如,在ms user interface style guide中推薦command buttons的大小 - 最小寬度為50 dialog的單位大小。
另外它也能夠有效地去避免,當tabbed panels由左邊切換到右邊、由上到下時,元件不會看起來有左右跳動、上下跳動的情況發生。這可以在不同的面版上建立平穩的佈局。
可以執行JGoodies Forms Basic中的BoundedSizeExample,看看Jumping1Panel切換到Jumping2Panel與Stable1Panel切換到Stable2Panel有何不同.
謝謝你這篇對JGoodies Forms佈局的詳解
讓人能很快了解,並且上手。
thx~
由...發表 小k on 四月 26, 2007 at 08:58 上午 CST #