レイアウト・マネージャについて

Javaプログラムは、複数のプラットフォームにデプロイされる可能性があります。標準的なUI設計技術を使用して、UIコンポーネントの絶対位置およびサイズを指定した場合、UIがすべてのプラットフォームで適切に表示されるとはかぎりません。使用している開発システム上では問題がなくても、他のプラットフォームでは使用できないということもあり得ます。この問題を解決するために、Javaでは移植可能なレイアウト・マネージャが提供されています。レイアウト・マネージャにより、作成するUIのレイアウトの規則および制約を、移植可能な方法で指定できます。

レイアウト・マネージャには、次の利点があります。

JavaのUIコンテナでは、コンテナが表示されるたびに、コンテナ内でのコンポーネントの配置やサイズを制御するため、レイアウト・マネージャと呼ばれる特殊なオブジェクトが使用されます。レイアウト・マネージャにより、そのレイアウト・マネージャ固有の一連の規則に従って、コンテナ内のコンポーネントが自動的に配置されます。

レイアウト・マネージャでは、次のような様々な要素に基づいて、コンポーネントのサイズと位置が設定されます。

Javaでは、一部の種類のコンテナで、デフォルトの特定のレイアウト・マネージャが使用されます。

Javaプログラムでコンテナを作成した場合、そのコンテナのデフォルトのレイアウト・マネージャをそのまま使用することも、または異なる種類のレイアウト・マネージャを指定して、デフォルトをオーバーライドすることもできます。

通常、UIを手動でコーディングする場合は、コンテナにコンポーネントを追加する前にデフォルトのレイアウト・マネージャをオーバーライドします。UIエディタを使用している場合、レイアウトはいつでも変更できます。JDeveloperで、コードが必要に応じて修正されます。

JDeveloperのUIエディタでは、各コンテナに対してデフォルトのレイアウト・マネージャが使用されます。通常はnullのレイアウトです。デフォルト以外の異なるレイアウト・マネージャを使用する場合、コンテナのソース・コードに明示的にレイアウト・マネージャを追加するか、あるいはインスペクタでコンテナの「レイアウト」プロパティ・リストからレイアウトを選択します。

重要: JDeveloperのUIエディタを使用して、レイアウト・マネージャのプロパティを変更する場合、コンテナのレイアウトを明示的に指定し、プロパティ・インスペクタでプロパティにアクセスできるようにしてください。

コンテナ全体に適用する設計に基づいて、レイアウト・マネージャを選択します。一部のレイアウトは、コンテナに追加されると同時に、コンポーネントの配置およびサイズ変更をただちに引き継ぐため、UIエディタでの処理が難しい場合があります。最初のレイアウト・プロトタイプ作成時に、この問題を多少なりとも解決するため、JDeveloperにはnullと呼ばれるデフォルトのレイアウトがあり、コンポーネントを置いたその場所に指定したサイズで残しておくことができます。nullで作業を開始すれば、コンテナ内のプロトタイプ作成は容易になります。コンテナにコンポーネントを追加した後で、自分の設計に適した移植可能なレイアウトに切り替えることができます。

一部の設計には、メインのフレーム内のコンポーネントをグループ化するため、ネストしたパネルを使用し、フレームやその中の各パネルに様々なレイアウトを使用するものがあります。

注意: レイアウト・マネージャを使用せずにパネルを設計する場合には、ソース・コードでレイアウト・マネージャをnullに設定できます。ただし、デプロイする場合は、このままにしておかないでください。

異なるレイアウトを試し、コンテナのコンポーネントに対するそれらの効果を確認します。選択したレイアウト・マネージャで希望どおりの結果が得られない場合は、別のレイアウト・マネージャを試すか、または希望する効果を得るために、様々なレイアウトの複数のパネルをネストしてみてください。「ネストされたコンテナおよびレイアウトの使用」を参照してください。

各レイアウトの詳細は、「JDeveloperで用意されているレイアウトについて」で、各レイアウトに関する個々のトピックを参照してください。http://www.javasoft.com/nav/read/Tutorial/の「The Java Tutorial」も有用です。