モジュール javafx.controls
パッケージ javafx.scene.control

クラスButtonBar

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


    public class ButtonBar
    extends Control
    ButtonBarは、HBoxにオペレーティング・システム固有のボタン配置のための機能を追加したものです。 つまり、いずれのNodeも、setButtonData(Node, ButtonData)メソッドを介して注釈を付け、(getButtons()リストを介して) ButtonBar内部に配置し、その注釈に基づいてボタン・リスト内の他のすべてのノードおよびButtonBarに指定された包括的なbutton orderを基準として配置することができます。

    均一ボタン・サイジング

    デフォルトでは、ButtonBar内のすべてのボタンは均一のサイズに設定され、つまりすべてのボタンに最も幅の広いボタンの幅が適用されます。 setButtonUniformSize(Node, boolean)メソッドをブール値falseで呼び出して、ボタンごとにこれを取り消すことが可能です。

    均一サイジングから除外されたボタンは、優先サイズが取り消されて再設定されることも、測定プロセスに含まれることもないため、そのボタンのサイズがButtonBar内のすべてのボタンに対して計算される最大サイズに影響を与えることはありません。

    スクリーンショット

    ButtonBarにはWindows、Mac OSおよびLinuxの組込みサポートが付属しているため、3つのスクリーンショットを次に示します。3つのオペレーティング・システムそれぞれに同じボタンが配置されています。

    Windows:

    Mac OS:

    Linux:

    コード・サンプル

    ButtonBarをインスタンス化および使用するのは簡単で、次のように記述するだけです。

     
     // Create the ButtonBar instance
     ButtonBar buttonBar = new ButtonBar();
    
     // Create the buttons to go into the ButtonBar
     Button yesButton = new Button("Yes");
     ButtonBar.setButtonData(yesButton, ButtonData.YES);
    
     Button noButton = new Button("No");
     ButtonBar.setButtonData(noButton, ButtonData.NO);
    
     // Add buttons to the ButtonBar
     buttonBar.getButtons().addAll(yesButton, noButton);
     

    前述のコード・サンプルでは、ユーザーのオペレーティング・システムを基準にしてYesボタンとNoボタンが配置されます。 つまり、WindowsおよびLinuxではYesボタンがNoボタンの前に配置され、Mac OSではNoの次にYesが配置されます。

    ほとんどの場合、OSに固有のレイアウトが最適なレイアウトですが、button order propertyを変更してカスタム・レイアウトにすることもできます。 これらは、ボタン順序の短縮表記である暗号的な文字列です。 Windows、Mac OSおよびLinuxでの組込み順序は次のとおりです。

    ButtonBarレイアウト表
    Windows: L_E+U+FBXI_YNOCAH_R
    Mac OS: L_HE+U+FBIX_NCYOA_R
    Linux: L_HE+UNYACBXIO_R

    これらの各文字の意味の説明は、ButtonBar.ButtonData列挙を参照してください。 ただし、ButtonBarにButtonBar.ButtonData.YESボタンとButtonBar.ButtonData.NOボタンのみを含め、yesボタンを常にnoボタンの前に配置し、かつボタンを右揃えにすた場合は、次のようにします。

     
     // Create the ButtonBar instance
     ButtonBar buttonBar = new ButtonBar();
    
     // Set the custom button order
     buttonBar.setButtonOrder("+YN");
     
    導入されたバージョン:
    JavaFX 8u40
    関連項目:
    ButtonBar.ButtonData
    • フィールドの詳細

      • BUTTON_ORDER_WINDOWS

        public static final String BUTTON_ORDER_WINDOWS
        Windowsでのデフォルトのボタン並び順。
        関連項目:
        定数フィールド値
      • BUTTON_ORDER_MAC_OS

        public static final String BUTTON_ORDER_MAC_OS
        Mac OSでのデフォルトのボタン並び順。
        関連項目:
        定数フィールド値
      • BUTTON_ORDER_LINUX

        public static final String BUTTON_ORDER_LINUX
        Linux (特にGNOME)でのデフォルトのボタン並び順。
        関連項目:
        定数フィールド値
      • BUTTON_ORDER_NONE

        public static final String BUTTON_ORDER_NONE
        ボタン並び順がないことを指定するボタン並び順文字列。 つまり、ボタンはgetButtons()リスト内の順序で配置されます。 レイアウトでHBoxを使用する場合と異なる点は、ボタンが右揃えであることのみです。
        関連項目:
        定数フィールド値
    • コンストラクタの詳細

      • ButtonBar

        public ButtonBar​()
        ユーザーのオペレーティング・システムのデフォルト・プロパティを使用して、デフォルトのButtonBarインスタンスを作成します。
      • ButtonBar

        public ButtonBar​(String buttonOrder)
        指定されたボタン順序でButtonBarを作成します(詳細は「buttonOrderProperty()」を参照)。
        パラメータ:
        buttonOrder - このボタン・バー・インスタンスで使用するボタン順序。
    • メソッドの詳細

      • setButtonData

        public static void setButtonData​(Node button,
                                         ButtonBar.ButtonData buttonData)
        指定されたボタンに、指定されたButtonDataを設定します。 その後でこのボタンがButtonBarに配置されるとき、バーの他のすべてのボタンを基準にして正しい位置に配置されます。
        パラメータ:
        button - 指定されたButtonBar.ButtonData値で注釈付けするボタン。
        buttonData - ボタンの指定に使用するButtonData。
      • getButtonData

        public static ButtonBar.ButtonData getButtonData​(Node button)
        指定されたボタンに以前に設定されたButtonDataプロパティを返します。 これが設定されていない場合、このメソッドはnullを返します。
        パラメータ:
        button - 以前に設定されたButtonDataを返すボタン。
        戻り値:
        指定されたボタンの以前に設定されたButtonDataプロパティ
      • setButtonUniformSize

        public static void setButtonUniformSize​(Node button,
                                                boolean uniformSize)
        デフォルトでは、ButtonBar内のすべてのボタンは均一のサイズに設定され、つまりすべてのボタンに最も幅の広いボタンの幅が適用されます。 setButtonUniformSizeメソッドをブール値falseで呼び出して、ボタンごとにこれを取り消すことが可能です。

        均一サイジングから除外されたボタンは、優先サイズが取り消されて再設定されることも、測定プロセスに含まれることもないため、そのボタンのサイズがButtonBar内のすべてのボタンに対して計算される最大サイズに影響を与えることはありません。

        パラメータ:
        button - 均一サイジングに含める、または均一サイジングから除外するボタン。
        uniformSize - ボタンに均一サイジングを適用する場合はブールのtrue、ボタンを均一サイジングから除外する場合はfalse。
      • isButtonUniformSize

        public static boolean isButtonUniformSize​(Node button)
        指定されたノードが均一サイジング計算に含まれるかどうかを返します。 デフォルトでは、(setButtonUniformSize(Node, boolean)を介して)除外されていないノードはすべてここでtrueを返します。
        パラメータ:
        button - ボタン
        戻り値:
        ボタンが均一なサイズの計算の一部である場合はtrue
      • createDefaultSkin

        protected Skin<?> createDefaultSkin​()
        このコントロールのデフォルト・スキンの新しいインスタンスを作成します。 これは、CSS -fx-skinを介してスキンが提供されていない場合にコントロール用のスキンを作成するために、または setSkin(...)を使用してサブクラスで明示的に設定するために呼び出されます。
        オーバーライド:
        createDefaultSkin 、クラス: Control
        戻り値:
        このコントロールのデフォルト・スキンの新しいインスタンス。 nullの場合、コントロールにはスキンがありません(Cssで提供されている場合を除く)。
      • getButtons

        public final ObservableList<Node> getButtons​()
        このObservableList内にボタンを配置すると、指定したButtonBar.ButtonDataに基づいてボタンそれぞれを相対的に配置するようButtonBarに指示します。 ボタンのButtonDataを設定するには、setButtonData(Node, ButtonData)を呼び出して、関連するButtonDataを渡すだけです。
        戻り値:
        現在ボタン・バー内にあるすべてのボタンが含まれた、ボタンの追加や削除が可能なリスト。
      • setButtonOrder

        public final void setButtonOrder​(String buttonOrder)
        button orderを設定します
        パラメータ:
        buttonOrder - 現在設定されているボタン順序(デフォルトではOSに固有のボタン順序になります)。
      • setButtonMinWidth

        public final void setButtonMinWidth​(double value)
        このボタン・バーに配置するすべてのボタンの最小幅を設定します。
        パラメータ:
        value - 最小幅の値
      • getButtonMinWidth

        public final double getButtonMinWidth​()
        このボタン・バーに配置するすべてのボタンの最小幅を返します。
        戻り値:
        最小幅の値
      • getInitialFocusTraversable

        protected Boolean getInitialFocusTraversable​()
        このコントロールの初期フォーカス・トラバーサブル状態を返します。これは、JavaFX CSSエンジンが初期値を正しく設定するために使用します。 このメソッドはオーバーライドされます。既定のUIコントロールでは、フォーカス・トラバーサルがtrueに設定されていますが、このコントロールには適切ではありません。
        オーバーライド:
        クラスControlgetInitialFocusTraversable
        戻り値:
        このコントロールの最初のフォーカス・トラバーサル状態
        導入されたバージョン:
        9