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

クラスHBox

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


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

    HBoxの例:

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

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

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

    サイズ変更可能な範囲

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

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

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

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

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

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

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

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

    HBox制約表
    制約Type説明
    hgrowjavafx.scene.layout.Priority子の水平方向の拡大優先度。
    マージンjavafx.geometry.Insets子の外側のマージン領域。

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

    
         HBox hbox = new HBox();
         TextField field = new TextField();
         HBox.setHgrow(field, Priority.ALWAYS);
         hbox.getChildren().addAll(new Label("Search:"), field, new Button("Go"));
     
    複数の子に同じ拡大優先度が設定されている場合は、各子にスペースが均等に割り当てられます。 HBoxはその最大幅を上限として子を拡大するため、子にDouble.MAX_VALUE以外の最大幅が設定されているときには、アプリケーションでその値をオーバーライドして子を拡大できるようにする必要がある場合があります。 例:
    
         HBox hbox = new HBox();
         Button button1 = new Button("Add");
         Button button2 = new Button("Remove");
         HBox.setHgrow(button1, Priority.ALWAYS);
         HBox.setHgrow(button2, Priority.ALWAYS);
         button1.setMaxWidth(Double.MAX_VALUE);
         button2.setMaxWidth(Double.MAX_VALUE);
         hbox.getChildren().addAll(button1, button2);
     
    導入されたバージョン:
    JavaFX 2.0
    • プロパティの詳細

      • fillHeight

        public final BooleanProperty fillHeightProperty
        サイズ変更可能な子が、hboxの高さ全体を満たすようにサイズ変更されるか、alignment vposの値に従って整列され、適切な高さにサイズ変更されるかどうか。 hboxの垂直位置合せがBASELINEに設定されている場合、このプロパティは無視され、子はそれぞれの優先高に合せてサイズ変更されることに注意してください。
        関連項目:
        isFillHeight()setFillHeight(boolean)
    • コンストラクタの詳細

      • HBox

        public HBox​()
        スペースを0としてHBoxレイアウトを作成します。
      • HBox

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

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

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

      • setHgrow

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

        public static Priority getHgrow​(Node child)
        子のhgrow制約を返します(設定されている場合)。
        パラメータ:
        child - hboxの子ノード
        戻り値:
        子の水平方向の拡大優先度または優先度が設定されていない場合はnull
      • setMargin

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

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

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

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

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

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

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

        public final BooleanProperty fillHeightProperty​()
        サイズ変更可能な子が、hboxの高さ全体を満たすようにサイズ変更されるか、alignment vposの値に従って整列され、適切な高さにサイズ変更されるかどうか。 hboxの垂直位置合せがBASELINEに設定されている場合、このプロパティは無視され、子はそれぞれの優先高に合せてサイズ変更されることに注意してください。
        関連項目:
        isFillHeight()setFillHeight(boolean)
      • setFillHeight

        public final void setFillHeight​(boolean value)
        プロパティfillHeightの値を設定します。
        プロパティの説明:
        サイズ変更可能な子が、hboxの高さ全体を満たすようにサイズ変更されるか、alignment vposの値に従って整列され、適切な高さにサイズ変更されるかどうか。 hboxの垂直位置合せがBASELINEに設定されている場合、このプロパティは無視され、子はそれぞれの優先高に合せてサイズ変更されることに注意してください。
      • isFillHeight

        public final boolean isFillHeight​()
        プロパティfillHeightの値を取得します。
        プロパティの説明:
        サイズ変更可能な子が、hboxの高さ全体を満たすようにサイズ変更されるか、alignment vposの値に従って整列され、適切な高さにサイズ変更されるかどうか。 hboxの垂直位置合せがBASELINEに設定されている場合、このプロパティは無視され、子はそれぞれの優先高に合せてサイズ変更されることに注意してください。
      • 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)
      • computeMinWidth

        protected double computeMinWidth​(double height)
        クラスからコピーされた説明: Region
        このリージョンの最小幅を計算します。 デフォルトでは、左枠と右枠の合計を返します。regionのサブクラスでは、このメソッドをオーバーライドして、そのコンテンツおよびレイアウト手法に基づいて適切な値を返す必要があります。 サブクラスにVERTICALコンテンツ・バイアスがない場合は、heightパラメータを無視できます。
        オーバーライド:
        computeMinWidth 、クラス: Region
        パラメータ:
        height - 最小幅が高さに依存する場合に使用する必要がある高さ
        戻り値:
        このリージョンの計算された最小幅
      • computeMinHeight

        protected double computeMinHeight​(double width)
        クラスからコピーされた説明: Region
        このリージョンの最小高を計算します。 デフォルトでは、上枠と下枠の合計を返します。 Regionのサブクラスでは、このメソッドをオーバーライドして、そのコンテンツおよびレイアウト手法に基づいて適切な値を返す必要があります。 サブクラスにHORIZONTALコンテンツ・バイアスがない場合は、widthパラメータを無視できます。
        オーバーライド:
        computeMinHeight 、クラス: Region
        パラメータ:
        width - 最小高が幅に依存する場合に使用する必要がある幅
        戻り値:
        このリージョンの計算された最小高
      • computePrefWidth

        protected double computePrefWidth​(double height)
        クラスからコピーされた説明: Region
        指定された高さに対するこのリージョンの優先幅を計算します。 Regionのサブクラスでは、このメソッドをオーバーライドして、そのコンテンツおよびレイアウト手法に基づいて適切な値を返す必要があります。 サブクラスにVERTICALコンテンツ・バイアスがない場合は、heightパラメータを無視できます。
        オーバーライド:
        computePrefWidth 、クラス: Region
        パラメータ:
        height - 推奨される幅がそれに依存する場合に使用する必要がある高さ
        戻り値:
        このリージョンの計算された優先幅
      • computePrefHeight

        protected double computePrefHeight​(double width)
        クラスからコピーされた説明: Region
        指定された幅に対するこのリージョンの優先高を計算します。Regionのサブクラスでは、このメソッドをオーバーライドして、そのコンテンツおよびレイアウト手法に基づいて適切な値を返す必要があります。 サブクラスにHORIZONTALコンテンツ・バイアスがない場合は、widthパラメータを無視できます。
        オーバーライド:
        computePrefHeight 、クラス: Region
        パラメータ:
        width - 推奨される高さがそれに依存する場合に使用する必要がある幅
        戻り値:
        このリージョンの計算された優先高
      • requestLayout

        public void requestLayout​()
        クラスからコピーされた説明: Parent
        次のシーンがレンダリングされる前に実行するレイアウト・パスを要求します。 これは、パルス(アニメーションのフレーム)ごとに1回行われるように、非同期にバッチ処理されます。

        この親がレイアウト・ルートまたは管理対象外のいずれかである場合は、シーンのダーティ・レイアウト・リストに直接追加されます。そうでない場合は、requestParentLayoutが起動されます。

        オーバーライド:
        requestLayout 、クラス: Parent
      • getBaselineOffset

        public double getBaselineOffset​()
        クラスからコピーされた説明: Parent
        最初に管理される子に基づいて、ベースライン・オフセットを計算します。 このような子がない場合は、Node.getBaselineOffset()を返します。
        オーバーライド:
        getBaselineOffset 、クラス: Parent
        戻り値:
        baseline offset
      • layoutChildren

        protected void layoutChildren​()
        クラスからコピーされた説明: Parent
        このParentの子をレイアウトするレイアウト・パス中に起動されます。 デフォルトでは、管理対象のサイズ変更可能なコンテンツのサイズをその優先サイズに合せて設定するのみで、ノードの配置は行われません。

        サブクラスは必要に応じてこの関数をオーバーライドし、コンテンツをレイアウトする必要があります。

        オーバーライド:
        layoutChildren 、クラス: Parent
      • 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