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

Javaプログラムは複数のプラットフォームでデプロイできます。標準的なUI設計テクニックを使用してUIコンポーネントの絶対位置とサイズを指定していた場合、一部のプラットフォームではUIの外観が適切でないことがあります。開発システムでは適切な外観が得られていたUIが、別のプラットフォームでは使用できないこともあります。この問題を解決するために、Javaでは移植可能なレイアウト・マネージャのシステムが提供されています。レイアウト・マネージャを使用すると、UIのレイアウトに関するルールと制約を移植可能な方法で指定できます。

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

Java UIコンテナでは、レイアウト・マネージャという特殊なオブジェクトを使用して、表示されるたびにコンテナ内のコンポーネントの位置とサイズが制御されます。レイアウト・マネージャでは、そのレイアウト・マネージャ固有の特定のルール・セットに従ってコンテナ内のコンポーネントが自動的に配置されます。

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

Javaでは、特定タイプのコンテナにデフォルトで特定のレイアウト・マネージャを使用します。

Javaプログラムでコンテナを作成する場合、そのコンテナ・タイプのデフォルトのレイアウト・マネージャを受け入れるか、別のタイプのレイアウト・マネージャを指定してデフォルトをオーバーライドできます。

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

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

重要: JDeveloperのJavaビジュアル・エディタを使用してレイアウト・マネージャのプロパティを変更する場合は、プロパティ・インスペクタでプロパティにアクセスできるように、コンテナのレイアウトを明示的に指定する必要があります。

コンテナに必要な設計全体に基づいてレイアウト・マネージャを選択します。レイアウトによっては、コンテナに追加した直後にコンポーネントの配置とサイズ変更を引き継ぐため、Javaビジュアル・エディタで操作しにくいものがあります。初期のレイアウト・プロトタイプ作成中にこの問題を軽減するため、JDeveloperにはnullというデフォルトのレイアウトが用意されています。このレイアウトでは、コンポーネントの配置と指定したサイズが正確に維持されます。nullを土台にすると、コンテナでのプロトタイプ作成が容易になります。その後、コンポーネントをコンテナに追加してから、設計に適した移植可能なレイアウトに切り替えることができます。

設計によっては、ネストしたパネルを使用してコンポーネントをメインのFrameにグループ化し、Frameと各パネルに各種の異なるレイアウトを使用できます。

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

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

各レイアウトの詳細は、「JDeveloperで提供されるレイアウト」で各レイアウトの個別トピックを参照してください。また、次のURLにあるSun社のWebページで提供されているJava Language Tutorialも参照できます。

http://www.javasoft.com/nav/read/Tutorial/