使用空值佈置

您可以將佈置管理程式設為空值,而不使用佈置管理程式來控制儲存器所有元件的大小和位置。每一個元件都會利用其界限來控制自己的位置和大小。

如果您用滑鼠右鍵按一下儲存器,並且設定「顯示格線」選項,就可以拖放元件,將元件移至格線的某一點,這樣一來,即使不使用對齊動作,也可以對齊元件位置:
在空值佈置顯示格線

您也可以先把佈置管理程式設為空值, 然後變更至某個佈置(像是 GridBagLayout),取得由 Java 視覺化編輯器計算的限制設定。 使每個元件控制其大小及位置的優點在於,您可以指定 x、y、寬度和高度,並確定執行時期一律都會使用這些值。 固定大小和高度的缺點則是,當使用者調整應用程式的大小, 或者元件上的標籤(如按鈕或勾選框)根據使用者的字型或語言環境而調整大小時, 它們並不會調整大小。

如果要了解 Java 視覺化編輯器中的這種行為, 可以在佈置內容的「內容」視圖中,使用值清單,並且選取空值

當您將現有儲存器的佈置管理程式設成空值時,「設計」視圖的外觀並不會改變。視覺化編輯器會計算每一個元件的目前界限, 並且為您明確設定這些界限。 比方說,假設您的儲存器是使用 FlowLayout 佈置管理程式,並且含有 JLabel Bean。 在您把佈置設為空值之前,起始設定 JLabel Bean 所用的程式碼, 只會設定它的標籤內容,如下所示:

private javax.swing.JLabel getIvjJLabel(){
    if(ivjJLabel == null) {
       ivjJLabel = new javax.swing.JLabel();
       ivjJLabel.setText("JLabel");
    }
    return ivjJLabel;
}

如果您接著使用「內容」視圖,將佈置管理程式改成空值,程式碼看起來就會類似以下所示:

private javax.swing.JLabel getIvjJLabel(){
    if(ivjJLabel == null) {
       ivjJLabel = new javax.swing.JLabel();
       ivjJLabel.setBounds(59, 10, 38, 15);
       ivjJLabel.setText("JLabel");
    }
    return ivjJLabel;
}

在同一個範例中,只要您將佈置管理程式設成空值之後, 每一個元件的「內容」視圖,便會立即顯示界限、大小和位置的值。 如果母項儲存器使用任何其他佈置管理程式,這些值就不會出現, 因為當佈置管理程式控制定位與調整大小作業時,元件內容並不會變更。

當您把儲存器的佈置設為空值時,「設計」視圖中每一個元件的控點,都可以用來調整大小。 當您從選用區加入 Bean 時,也可以調整它的大小。 當您將 Bean 放在「設計」視圖時,只要按住滑鼠左鍵,同時拖曳滑鼠指標,直到 Bean 變成所需的大小為止即可。 起始大小會以一個目標回應矩形來顯示。 如果在其他佈置管理程式,則只能移動或新增元件。

母主題:利用視覺化編輯器佈置元件

相關概念
佈置管理程式和儲存器

(C) Copyright IBM Corporation 1999, 2004. All Rights Reserved.