JavaFXで「ドロップダウンボタン」を作成するにはどうすればよいですか?
これまで私は目的のためにChoiceBox
を使用していましたが、今度はChoiceBox
に画像を割り当てる必要があります。
ChoiceBox.setGraphic()//
Buttons
のように利用できません
なので、ドロップダウンボタンに変更する予定です。アイコンを設定できるように。
UIの設計にSceneBuilder
を使用しています。
JavaFXを使用してドロップダウンボタンを作成する方法を検索するのに役立ちません。
ChoiceBox
のように選択を保存する必要がない場合は、たとえば MenuButton
コントロールを使用できます。
MenuButtonは、クリックまたは押すとContextMenuを表示するボタンです。
MenuButton
には graphicProperty
があり、その基本クラスはLabeled
です。
簡単な例
final Image image = new Image(getClass().getResource("cross_red.png").toExternalForm(), 20, 20, true, true);
MenuButton menuButton = new MenuButton("Don't touch this");
menuButton.setGraphic(new ImageView(image));
menuButton.getItems().addAll(new MenuItem("Really"), new MenuItem("Do not"));
これにより、次のようなボタンが生成されます:
注:ボタンが実際のボタンのように機能する必要がある場合は、MenuButton
から SplitMenuButton
。唯一の違いは、コントロールフィールドがボタン部分とドロップダウン部分に分割されていることです(したがって、ヘッダーにもアクションを割り当てることができます)。
SplitMenuButtonは、MenuButtonと同様に、メニューからMenuItemを選択するという概念と密接に関連しています。 MenuButtonとは異なり、SplitMenuButtonは、「アクション」領域と「メニューオープン」領域の2つの部分に分かれています。
ユーザーがアクション領域をクリックすると、SplitMenuButtonはButtonと同様に動作し、ButtonBase.onActionプロパティに関連付けられているものをすべて起動します。