PaneLayoutについて

PaneLayoutでは、コンポーネントのサイズをコンテナ内の他のコンポーネントとの関係で指定できます。パネルまたはフレームにPaneLayoutを適用すると、それぞれのコンポーネントがコンテナに占める割合を相対的に制御できますが、ペインの間に移動可能な分割線は作成されません。

Split Panel image

PaneLayoutでは、各コンポーネントの配置とサイズは、すでにそのコンテナ内にあるコンポーネントを基準にして指定します。各コンポーネントには、どのコンポーネントの、どれだけの領域を使用するかをレイアウト・マネージャに指示するPaneConstraintsオブジェクトを指定します。各コンポーネントのPaneConstraintsオブジェクトは、そのコンポーネントが追加された時点のコンテナに適用されます。コンテナにコンポーネントを追加する順序が、非常に重要になります。

PaneConstraintの変数

コンテナに追加されるPaneConstraintsコンポーネントの制約は、次の4つの変数で構成されます。

String name

コンポーネントの名前(CardLayoutの場合と同様に、コンテナ内のすべてのコンポーネントで一意)。
 
String splitComponentName

コンポーネントに領域を提供するコンポーネントの名前。
 
String position

コンポーネントの配置を指定するsplitComponentNameの枠。

有効値は次のとおりです。

選択項目 処理

PaneConstraints.TOP

コンポーネントはsplitComponentNameの上に置かれます。

PaneConstraints.BOTTOM

コンポーネントはsplitComponentNameの下に置かれます。

PaneConstraints.RIGHT

コンポーネントはsplitComponentNameの右に置かれます。

PaneConstraints.LEFT

コンポーネントはsplitComponentNameの左に置かれます。

PaneConstraints.ROOT

コンポーネントは、追加される最初のコンポーネントです。

 
float proportion

コンポーネントに割り当てられるsplitComponentNameの比率。数値は0と1の間です。

PaneLayoutへのコンポーネントの追加方法

UIエディタでのPaneLayoutコンテナの作成

  1. UIエディタで作成するUIにコンテナを追加します。これはどのような種類のフレームまたはパネルでもかまいません。

    empty frame

  2. コンテナの「layout」プロパティを「PaneLayout」に変更します。これにより、インスペクタ内のPaneLayoutのプロパティにアクセスできます。
  3. コンポーネント・パレットから、最初のコンポーネントを選択し、PaneLayoutコンテナにドロップします。このコンポーネントは、別のコンポーネントを追加するまで、コンテナ全体を占有します。

    PaneLayout Container illustration image

  4. 2番目のコンポーネントを選択し、希望の位置で希望するサイズまでドラッグします。

    PaneLayout Container illustration image

    重要: PaneLayoutコンテナに追加した最初のコンポーネント自体がコンテナであった場合、UIエディタでは2番目のコンポーネントを追加しようとすると、PaneLayoutコンテナにではなく、外側のコンテナに追加するものとみなされます。ナビゲータを使用して、コンポーネントを追加するコンテナを指定します。

  5. PaneLayoutに3番目のコンポーネントを追加するには、同様にドラッグして、他のコンポーネントを基準として位置を定義します。

    たとえば、コンテナの右半分を分割するには、3番目のコンポーネントを、パネルの右枠の中央から最初のコンポーネントの右下隅までドラッグします。

    PaneLayout Constraints illustration image

  6. 同様に、後のコンポーネントを追加します。