Javaプログラムは、複数のプラットフォームにデプロイされる可能性があります。標準的なUI設計技術を使用して、UIコンポーネントの絶対位置およびサイズを指定した場合、UIがすべてのプラットフォームで適切に表示されるとはかぎりません。使用している開発システム上では問題がなくても、他のプラットフォームでは使用できないということもあり得ます。この問題を解決するために、Javaでは移植可能なレイアウト・マネージャが提供されています。レイアウト・マネージャにより、作成するUIのレイアウトの規則および制約を、移植可能な方法で指定できます。
レイアウト・マネージャには、次の利点があります。
フォント、画面の解像度およびプラットフォームの違いには関係なく、コンポーネントの位置を正確に設定。
実行時に動的にサイズが変わるコンテナに対応する、インテリジェントなコンポーネント配置。
JavaのUIコンテナでは、コンテナが表示されるたびに、コンテナ内でのコンポーネントの配置やサイズを制御するため、レイアウト・マネージャと呼ばれる特殊なオブジェクトが使用されます。レイアウト・マネージャにより、そのレイアウト・マネージャ固有の一連の規則に従って、コンテナ内のコンポーネントが自動的に配置されます。
レイアウト・マネージャでは、次のような様々な要素に基づいて、コンポーネントのサイズと位置が設定されます。
レイアウト・マネージャのレイアウト規則
レイアウト・マネージャのプロパティ設定(ある場合)
各コンポーネントに関連付けられたレイアウト制約
preferredSize、minimumSize、maximumSize、alignmentXおよびalignmentYなど、すべてのコンポーネントに共通の特定のプロパティ
Javaでは、一部の種類のコンテナで、デフォルトの特定のレイアウト・マネージャが使用されます。
すべてのパネル(アプレットを含む)では、FlowLayoutが使用されます。
Javaプログラムでコンテナを作成した場合、そのコンテナのデフォルトのレイアウト・マネージャをそのまま使用することも、または異なる種類のレイアウト・マネージャを指定して、デフォルトをオーバーライドすることもできます。
通常、UIを手動でコーディングする場合は、コンテナにコンポーネントを追加する前にデフォルトのレイアウト・マネージャをオーバーライドします。 Javaビジュアル・エディタを使用している場合、レイアウトはいつでも変更できます。JDeveloperで、コードが必要に応じて修正されます。
JDeveloperのJavaビジュアル・エディタでは、各コンテナに対してデフォルトのレイアウト・マネージャが使用されます。通常はnullのレイアウトです。 デフォルト以外の異なるレイアウト・マネージャを使用する場合、コンテナのソース・コードに明示的にレイアウト・マネージャを追加するか、あるいはインスペクタでコンテナのレイアウト・プロパティ・リストからレイアウトを選択します。
重要: JDeveloperのJavaビジュアル・エディタを使用して、レイアウト・マネージャのプロパティを変更する場合、コンテナのレイアウトを明示的に指定し、プロパティ・インスペクタでプロパティにアクセスできるようにしてください。
コンテナ全体に適用する設計に基づいて、レイアウト・マネージャを選択します。 一部のレイアウトは、コンテナに追加されると同時に、コンポーネントの配置およびサイズ変更をただちに引き継ぐため、Javaビジュアル・エディタでの処理が難しい場合があります。 最初のレイアウト・プロトタイプ作成時にこの問題を軽減するため、JDeveloperにはNULLと呼ばれるデフォルトのレイアウトがあり、コンポーネントを置いたその場所に指定したサイズで残しておくことができます。 NULLで作業を開始すれば、コンテナ内のプロトタイプ作成は容易になります。コンテナにコンポーネントを追加した後で、自分の設計に適した移植可能なレイアウトに切り替えることができます。
一部の設計には、メインのフレーム内のコンポーネントをグループ化するため、ネストしたパネルを使用し、フレームやその中の各パネルに様々なレイアウトを使用するものがあります。
注意: レイアウト・マネージャを使用せずにパネルを設計する場合は、ソース・コードでレイアウト・マネージャをNULLに設定できます。ただし、デプロイする場合は、このままにしておかないでください。
異なるレイアウトを試し、コンテナのコンポーネントに対するそれらの効果を確認します。選択したレイアウト・マネージャで希望どおりの結果が得られない場合は、別のレイアウト・マネージャを試すか、または希望する効果を得るために、様々なレイアウトの複数のパネルをネストしてみてください。 「ネストされたコンテナおよびレイアウトの使用」を参照してください。
各レイアウトの詳細は、「JDeveloperで用意されているレイアウトについて」で、各レイアウトに関する個々のトピックを参照してください。 Sun社の次のWebページにある「The Java Tutorial」も有用です。
http://www.javasoft.com/nav/read/Tutorial/
Copyright © 1997, 2004, Oracle Corporation. All rights reserved.