JavaFX ContexMenu
时间:2020-01-09 10:36:35  来源:igfitidea点击:
JavaFX ContextMenu组件为JavaFX控件提供了一个标准的右键单击菜单。 JavaFX ContextMenu由类javafx.scene.control.ContextMenu表示。我们创建一个" ContextMenu"实例,并将其添加到我们希望" ContextMenu"处于活动状态的JavaFX控件。这是JavaFX TextArea的屏幕快照,其中已添加并显示了" ContextMenu":
完整的ContextMenu示例
这是一个完整的JavaFXContextMenu示例,为我们提供有关使用ContextMenu外观的快速概述:
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.*;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
public class ContextMenuExample extends Application {
    public static void main(String[] args) {
        launch(args);
    }
    public void start(Stage primaryStage) {
        ContextMenu contextMenu = new ContextMenu();
        MenuItem menuItem1 = new MenuItem("Choice 1");
        MenuItem menuItem2 = new MenuItem("Choice 2");
        MenuItem menuItem3 = new MenuItem("Choice 3");
        menuItem3.setOnAction((event) -> {
            System.out.println("Choice 3 clicked!");
        });
        contextMenu.getItems().addAll(menuItem1,menuItem2,menuItem3);
        TextArea textArea = new TextArea();
        textArea.setContextMenu(contextMenu);
        VBox vBox = new VBox(textArea);
        Scene scene = new Scene(vBox);
        primaryStage.setScene(scene);
        primaryStage.setTitle("JavaFX App");
        primaryStage.show();
    }
}
创建一个ContextMenu
要使用JavaFXContextMenu,必须首先创建一个ContextMenu实例。这是创建JavaFXContextMenu的示例:
ContextMenu contextMenu = new ContextMenu();
将菜单项添加到ContextMenu
ContextMenu需要一个或者多个MenuItem实例,这些实例显示在菜单中。要检测单击了哪个菜单项,可将侦听器添加到MenuItem实例。以下是将MenuItem实例添加到ContextMenu的示例:
ContextMenu contextMenu = new ContextMenu();
MenuItem menuItem1 = new MenuItem("Choice 1");
MenuItem menuItem2 = new MenuItem("Choice 2");
MenuItem menuItem3 = new MenuItem("Choice 3");
menuItem3.setOnAction((event) -> {
    System.out.println("Choice 3 clicked!");
});
contextMenu.getItems().addAll(menuItem1,menuItem2,menuItem3);
注意如何使用setOnAction()在第三个MenuItem上设置onAction侦听器,并将Java Lambda Expression作为侦听器传递。如果单击此" MenuItem",则将执行动作侦听器。
将ContextMenu添加到JavaFX控件
需要将JavaFXContextMenu添加到JavaFX控件才能激活。我们可以通过JavaFX控件的setContextMenu()将ContextMenu添加到控件中。这是向JavaFX控件添加JavaFXContextMenu的示例:
TextArea textArea = new TextArea(); textArea.setContextMenu(contextMenu);

