2010年8月19日 星期四

Java swing 圖形介面設計時的小提醒

目前專題使用的視窗布局管理有「GirdBagLayout 格群佈局管理員」與「null 不使用視窗布局管理」,這兩個布局管理在使用有許多不起眼的小設定,但這些設定卻足以改變整個布局的外觀:
 (以下均為操作時發生的問題,實際上是否具有該項特性仍需再次測試)

 GirdBagLayout 格群佈局管理員:
  1.  一開始必須使用 setLayout(new GridBagLayout()) 啟動 GirdBagLayout 。
  2. 即使同一個 GridBagConstraints ,使用在不同 Panel 內的元件就視為不同的GridBagConstraints 。
  3. 除非使用 ipadx 與 ipady ,否則元件大小不會受到 setSize() 等 Method 無法改變。
  4. 因為布局管理採用格群配置,所以 setLocation() 等 Method 無法變更。
  5. 假設有兩個元件,gridy 都為 1, gridx 分別為 1 跟 3,則彼此之間仍不會出現 gridx 為 2 的空格,除非其他元件設定 gridy 不等於 1 且 gridx 等於 2 。
  6. Insets(int top, int left, int bottom, int right) 可以設定元件之間的距離,所以兩個平行並排的元件實際距離為:左邊元件的 right + 右邊元件的 left ,垂直排列也有這項特性。
 null 不使用視窗布局管理:
  1.  一開始必須使用 setLayout(null) 關閉所有的布局管理員。
  2. 使用元件時,其元件大小必須要使用 setSize() 等 Method 設定,否則一開始大小為 0 。
  3. 若不設定元件起始位置,則均設定在元件被放置的 Panel 內之最左上角位置。
請注意,如果 Panel 等容器不使用 setLayout() 設定,則預設值為「邊界版面配置」,此時 setSize() 與 setLocation() 等 Method 將無法正常使用。

沒有留言:

張貼留言