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);