PaneLayout
では、コンポーネントのサイズをコンテナ内の他のコンポーネントとの関係で指定できます。パネルまたはフレームにPaneLayout
を適用すると、それぞれのコンポーネントがコンテナに占める割合を相対的に制御できますが、ペインの間に移動可能な分割線は作成されません。
PaneLayout
では、各コンポーネントの配置とサイズは、すでにそのコンテナ内にあるコンポーネントを基準にして指定します。各コンポーネントには、どのコンポーネントの、どれだけの領域を使用するかをレイアウト・マネージャに指示するPaneConstraints
オブジェクトを指定します。各コンポーネントのPaneConstraints
オブジェクトは、そのコンポーネントが追加された時点のコンテナに適用されます。コンテナにコンポーネントを追加する順序が、非常に重要になります。
PaneConstraintの変数
コンテナに追加されるPaneConstraints
コンポーネントの制約は、次の4つの変数で構成されます。
CardLayout
の場合と同様に、コンテナ内のすべてのコンポーネントで一意)。コンポーネントの配置を指定するsplitComponentNameの枠。
有効値は次のとおりです。
選択項目 | 処理 |
---|---|
PaneConstraints.TOP |
コンポーネントは |
PaneConstraints.BOTTOM |
コンポーネントは |
PaneConstraints.RIGHT |
コンポーネントは |
PaneConstraints.LEFT |
コンポーネントは |
PaneConstraints.ROOT |
コンポーネントは、追加される最初のコンポーネントです。 |
PaneLayoutへのコンポーネントの追加方法
PaneConstraint
で唯一重要な変数は、nameです。他のコンポーネントでは、この値をそれぞれのsplitComponentName
として指定します。splitComponentName
に指定します。splitComponentName
は、すでにコンテナに追加されている任意のコンポーネントのnameでかまいません。UIエディタでのPaneLayoutコンテナの作成
layout
」プロパティを「PaneLayout
」に変更します。これにより、インスペクタ内のPaneLayout
のプロパティにアクセスできます。PaneLayout
コンテナにドロップします。このコンポーネントは、別のコンポーネントを追加するまで、コンテナ全体を占有します。
重要: PaneLayout
コンテナに追加した最初のコンポーネント自体がコンテナであった場合、UIエディタでは2番目のコンポーネントを追加しようとすると、PaneLayout
コンテナにではなく、外側のコンテナに追加するものとみなされます。ナビゲータを使用して、コンポーネントを追加するコンテナを指定します。
PaneLayout
に3番目のコンポーネントを追加するには、同様にドラッグして、他のコンポーネントを基準として位置を定義します。たとえば、コンテナの右半分を分割するには、3番目のコンポーネントを、パネルの右枠の中央から最初のコンポーネントの右下隅までドラッグします。