レイアウト・マネージャーを使用してコンテナー内のすべてのコンポーネントのサイズおよび位置を制御する代わりに、そのレイアウト・マネージャーをヌルに設定できます。この場合、それぞれのコンポーネントは、その境界を使用してそれ自体の位置およびサイズを制御します。
コンテナーを右マウス・ボタンでクリックして
「グリッドの表示」オプションを設定すると、
コンポーネントをグリッド上の位置にドラッグ、ドロップ、および移動できます。
つまり、位置合わせアクションを使用せずにコンポーネントを配置できます。
また、ヌルに設定されたレイアウト・マネージャーを開始して、(GridBagLayout の ように) レイアウトを変更して、Visual Editor for Java で計算される制約設定を取得する こともできます。それぞれのコンポーネントでサイズおよび位置の制御が行えると、x、y、 幅、高さを指定でき、実行時にこれらが常に使用されるという利点があります。 サイズと高さが固定されていると、ユーザーがアプリケーションのサイズを変更する場合や、 ボタンやチェック・ボックスのようなコンポーネントのラベルをユーザーのフォント やロケールに合わせてサイズ変更する場合に、サイズ変更ができない欠点があります。
この振る舞いを Visual Editor for Java で確認するには、「レイアウト」プロパティーの「プロパティー」ビューにある値のリストを使用して 「ヌル」を選択します。
既存のコンテナー用のレイアウト・マネージャーをヌルに設定しても、「設計」ビュー の外観は変更されません。Visual Editor が各コンポーネントの現在の境界を計算して、明示的 に設定します。例えば、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 が望ましいサイズになるまでマウス・ポインターをドラッグします。ターゲット・ フィードバック長方形には初期サイズが表示されます。その他のレイアウト・マネージャーでは、 コンポーネントの移動と追加のみ行えます。
親トピック: Visual Editor を使用したコンポーネントのレイアウト
関連概念
レイアウト・マネージャーとコンテナー