モジュール javafx.graphics
パッケージ javafx.scene.layout

クラスVBox

  • すべての実装されたインタフェース:
    Styleable, EventTarget

    public class VBox
    extends Pane
    VBoxは、単一の垂直列に子をレイアウトします。 vboxにボーダーまたは余白(あるいはその両方)が設定されている場合は、それらの枠内にコンテンツがレイアウトされます。

    VBoxの例:

    
         VBox vbox = new VBox(8); // spacing = 8
         vbox.getChildren().addAll(new Button("Cut"), new Button("Copy"), new Button("Paste"));
     
    VBoxは、子(サイズ変更可能な場合)を優先高にサイズ変更し、fillWidthプロパティを使用して、VBox自体の幅全体に表示するように子の幅をサイズ変更するか、子の幅を優先値に維持するかを決定します(fillWidthのデフォルト値はtrueです)。 コンテンツの位置合せは、alignmentプロパティ(デフォルト値はPos.TOP_LEFT)によって制御されます。

    vboxが優先高よりも大きくなるようにサイズ変更された場合、子の高さはデフォルトではそれぞれの優先値に維持され、追加スペースは使用されません。 1つ以上の子に追加スペースを割り当てる必要があるアプリケーションでは、オプションで子に対してvgrow制約を設定できます。 詳細は、「オプションのレイアウト制約」を参照してください。

    VBoxでは、管理対象の各子をそれぞれの可視プロパティの値に関係なくレイアウトします。管理対象外の子は無視されます。

    サイズ変更可能な範囲

    vboxの親は、レイアウト時にvboxのサイズ変更可能範囲内でvboxをサイズ変更します。 デフォルトでは、この範囲は、次の表に示すようにvboxのコンテンツに基づいて計算されます。

    VBoxサイズ変更表
    widthheight
    最小 左/右の枠+子の最小幅の中の最大値 上/下の枠+各子の最小高の合計+各子間のスペース
    優先 左/右の枠+子の優先幅の中の最大値 上/下の枠+各子の優先高の合計+各子間のスペース
    最大 Double.MAX_VALUEDouble.MAX_VALUE

    vboxの最大幅および最大高には制限がないため、親に割り当てられているスペースすべてを満たすために、親がその優先サイズより大きいサイズに変更される可能性があります。

    VBoxには、サイズ範囲を直接設定するためのプロパティが用意されています。 これらのプロパティはデフォルトでセンチネル値USE_COMPUTED_SIZEに設定されますが、アプリケーションでは必要に応じてこれらを別の値に設定できます。

    
         vbox.setPrefWidth(400);
     
    アプリケーションでは、これらのプロパティの設定をUSE_COMPUTED_SIZEに戻すことで、計算された値を復元できます。

    VBoxはデフォルトではそのコンテンツをクリップしないため、子の最小サイズが原因でvbox内に子を収めることができない場合は、子の境界がvbox自体の境界の外側まで拡大することがあります。

    オプションのレイアウト制約

    アプリケーションでは、個別の子に制約を設定して、VBoxのレイアウトをカスタマイズできます。 VBoxでは、静的メソッドにより子に各制約を個別に設定できます。

    VBox制約表
    制約Type説明
    vgrowjavafx.scene.layout.Priority子の垂直方向の拡大優先度。
    マージンjavafx.geometry.Insets子の外側のマージン領域。

    たとえば、vboxでListViewに追加スペースをすべて割り当てる必要がある場合は、次のようにします。

    
         VBox vbox = new VBox();
         ListView list = new ListView();
         VBox.setVgrow(list, Priority.ALWAYS);
         vbox.getChildren().addAll(new Label("Names:"), list);
     
    複数の子に同じ拡大優先度が設定されている場合は、各子にスペースが均等に割り当てられます。 VBoxはその最大高を上限として子を拡大するため、子にDouble.MAX_VALUE以外の最大高が設定されているときには、アプリケーションでその値をオーバーライドして子を拡大できるようにする必要がある場合があります。
    導入されたバージョン:
    JavaFX 2.0
    • コンストラクタの詳細

      • VBox

        public VBox()
        スペースを0、位置合せをTOP_LEFTとしてVBoxレイアウトを作成します。
      • VBox

        public VBox​(double spacing)
        子間のスペースを指定してVBoxレイアウトを作成します。
        パラメータ:
        spacing - 各子間の垂直方向のスペースの量。
      • VBox

        public VBox​(Node... children)
        スペーシングが0のVBoxレイアウトを作成します。
        パラメータ:
        children - このペインの子の初期設定。
        導入されたバージョン:
        JavaFX 8.0
      • VBox

        public VBox​(double spacing,
                    Node... children)
        子間のスペーシングを指定したVBoxレイアウトを作成します。
        パラメータ:
        spacing - 各子間の水平方向のスペースの量。
        children - このペインの子の初期設定。
        導入されたバージョン:
        JavaFX 8.0
    • メソッドの詳細

      • setVgrow

        public static void setVgrow​(Node child,
                                    Priority value)
        vboxに含まれている場合に、子の垂直方向の拡大優先度を設定します。 設定した場合、vboxが優先高よりも大きくなるようにサイズ変更されたときに、優先度に基づいて追加スペースが割り当てられます。 vboxの複数の子に同じ垂直方向の拡大優先度が設定されている場合、それらの子間で追加スペースが均等に分割されます。 子に垂直方向の拡大優先度が設定されていない場合は、垂直方向の追加スペースが使用可能な場合でも割り当てられません。 値をnullに設定すると、制約は削除されます。
        パラメータ:
        child - vboxの子
        value - 子の水平方向の拡大優先度
      • getVgrow

        public static Priority getVgrow​(Node child)
        子のvgrowプロパティを返します(設定されている場合)。
        パラメータ:
        child - vboxの子ノード
        戻り値:
        子の垂直方向の拡大優先度または優先度が設定されていない場合はnull
      • setMargin

        public static void setMargin​(Node child,
                                     Insets value)
        vboxに含まれている場合に、子のマージンを設定します。 設定した場合、子は周囲にマージン領域を設けてレイアウトされます。 値をnullに設定すると、制約は削除されます。
        パラメータ:
        child - vboxの子ノード
        value - 子の周囲の空白のマージン
      • getMargin

        public static Insets getMargin​(Node child)
        子のマージン・プロパティを返します(設定されている場合)。
        パラメータ:
        child - vboxの子ノード
        戻り値:
        子のマージン、またはマージンが設定されていない場合はnull
      • clearConstraints

        public static void clearConstraints​(Node child)
        子ノードからすべてのvbox制約を削除します。
        パラメータ:
        child - 子ノード
      • setSpacing

        public final void setSpacing​(double value)
        プロパティspacingの値を設定します。
        プロパティの説明:
        vboxの子の間の垂直方向の総スペース。
      • getSpacing

        public final double getSpacing()
        プロパティspacingの値を取得します。
        プロパティの説明:
        vboxの子の間の垂直方向の総スペース。
      • setAlignment

        public final void setAlignment​(Pos value)
        プロパティalignmentの値を設定します。
        プロパティの説明:
        vboxの幅と高さの範囲内での子の全体的な位置合せ。
      • getAlignment

        public final Pos getAlignment()
        プロパティalignmentの値を取得します。
        プロパティの説明:
        vboxの幅と高さの範囲内での子の全体的な位置合せ。
      • fillWidthProperty

        public final BooleanProperty fillWidthProperty()
        サイズ変更可能な子が、vboxの全幅を埋めるようにサイズ変更されるか、alignment hposの値に従って整列され、優先幅にサイズ変更されるかどうか。
        関連項目:
        isFillWidth()setFillWidth(boolean)
      • setFillWidth

        public final void setFillWidth​(boolean value)
        プロパティfillWidthの値を設定します。
        プロパティの説明:
        サイズ変更可能な子が、vboxの全幅を埋めるようにサイズ変更されるか、alignment hposの値に従って整列され、優先幅にサイズ変更されるかどうか。
      • isFillWidth

        public final boolean isFillWidth()
        プロパティfillWidthの値を取得します。
        プロパティの説明:
        サイズ変更可能な子が、vboxの全幅を埋めるようにサイズ変更されるか、alignment hposの値に従って整列され、優先幅にサイズ変更されるかどうか。
      • getContentBias

        public Orientation getContentBias()
        次のクラスからコピーされた説明: Node
        レイアウト用にノードのサイズ変更バイアスの向きを返します。 ノード・タイプにはバイアスがないため、nullを返します。 ノードがサイズ変更可能で、その高さが幅に依存する場合は、HORIZONTALを返し、その幅が高さに依存する場合は、VERTICALを返します。

        Resizableのサブクラスはこのメソッドをオーバーライドし、適切な値を返す必要があります。

        オーバーライド:
        getContentBias 、クラス: Node
        戻り値:
        子のいずれかにコンテンツ・バイアスある場合を除き、null。
        関連項目:
        Node.isResizable()Node.minWidth(double)Node.minHeight(double)Node.prefWidth(double)Node.prefHeight(double)Node.maxWidth(double)Node.maxHeight(double)
      • getClassCssMetaData

        public static List<CssMetaData<? extends Styleable,?>> getClassCssMetaData()
        戻り値:
        このクラスに関連付けられたCssMetaData。スーパークラスのCssMetaDataを含むことがあります。
        導入されたバージョン:
        JavaFX 8.0
      • getCssMetaData

        public List<CssMetaData<? extends Styleable,?>> getCssMetaData()
        NodeのCssMetaDataがリフレクションなしでアクセス可能になるように、このメソッドはNode.getClassCssMetaData()に委任する必要があります。
        定義:
        getCssMetaData 、インタフェース: Styleable
        オーバーライド:
        getCssMetaData 、クラス: Region
        戻り値:
        このノードに関連付けられたCssMetaData。スーパークラスのCssMetaDataを含むことがあります。
        導入されたバージョン:
        JavaFX 8.0