【JavaFX】メニュバーを作成・イベントを登録する方法(MenuBar)

JavaFXでメニュバーを作成・イベントを登録する方法について記載します。

メニュバーを作成・イベントを登録する方法

メニュバーを作成するには、MenuBarクラスMenuクラスMenuItemクラス を組み合わせて使用します。

MenuBarクラス
メニューバーを表すクラス。
Menuクラス
メニューバーに表示する各メニューを表すクラス。
メニューバーに複数のメニューを表示する場合は、各メニュー毎にMenuクラスのインスタンスを作成します。
MenuItemクラス
各メニューに表示するアイテムを表すクラス。
各メニューに複数のアイテムを表示する場合は、各アイテム毎日にMenuItemクラスのインスタンスを作成します。

次の実行例ではメニューバーに3つのメニュー(メニューA・B・C)を作成しています。

メニューA
処理を終了するためのExitアイテムを表示します。
Exitアイテムがクリックされるとプログラムを終了するイベントが実行されます。

メニューB
各アイテムにイベントを設定しています。
各アイテムをクリックすると画面中央のラベルにテキストが表示されます。
また、アイテムを区切るセパレーターも表示します。

メニューC
多階層となるメニューを表示します。

実行例

1. メニューバーの作成

メニューバーを作成するには、MenuBarクラスのインスタンスを作成します。

MenuBar menuBar = new MenuBar();

また、メニューバーにメニューを追加するには、add もしくは addAll メソッドを使用します。

menuBar.getMenus().addAll( menuA, menuB, menuC );

2. メニューの作成

メニューを作成するには、Menuクラスのインスタンスを作成します。
コンストラクの引数には、表示名を指定します。

Menu menuA = new Menu(“メニューA”);

また、メニューにアイテムを追加するには、add もしくは addAll メソッドを使用します。

menuA.getItems().addAll( menuAItem1 );

3. アイテムの作成

メニューに表示するアイテムを作成するには、MenuItemクラスのインスタンスを作成します。
コンストラクタの引数には、表示名を指定します。

MenuItem menuAItem1 = new MenuItem(“Exit”);
メニューにアイテムを追加するには、”2. メニューの作成” のように、add もしくは addAllメソッドを使用して、メニューに追加します。

4. アイテムにイベントを登録

アイテムクリック時のイベントを登録するには、setOnActionメソッドを使用します。

メニューAのようにラムダ式を使用してイベントを処理する方法や、メニューBのようにイベント用の独自クラスを作成して処理を行います。

ラムダ式を使用してイベント処理を記述

イベント用の独自クラスを作成してイベント処理を記述
イベント用の独自クラスでは、EventHandler<ActionEvent>インタフェースを実装する必要があります。

5. アイテムをセパレーターで区切る

アイテムをセパレーターで区切るには、SeparatorMenuItemクラスのインスタンスを作成します。

メニューにアイテムを追加する際に、区切りたい箇所で new SeparatorMenuItem() とインスタンスを生成すると区切ることが出来ます。

6. 多階層メニューを作成

多階層メニューを作成するには、メニューCのように、親となるMenu( 以下 menuC )に 子となるMenu( 以下 menuSub1 )を追加します。

7. その他のメニューアイテム

上記で作成したメニューアイテムは基本的な物で、チェック付きのアイテムを作成することも出来ます。
詳細は以下のリンクを参照してください。

メニューに複数選択可能なアイテムを作成・イベントを登録する方法

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする