📅  最后修改于: 2023-12-03 15:16:03.441000             🧑  作者: Mango
JavaFX 的 ContextMenu 是一种右键菜单,可以在用户单击应用程序中的组件时显示。ContextMenu 可以包含多个 MenuItem,它们可以执行与组件相关的一些操作。本文将为您介绍如何创建一个基本的 ContextMenu,并提供一个示例。
下面是一个简单的 JavaFX 示例,演示如何创建一个 ContextMenu 和一些 MenuItem。
ContextMenu contextMenu = new ContextMenu();
MenuItem menuItem1 = new MenuItem("复制");
MenuItem menuItem2 = new MenuItem("黏贴");
contextMenu.getItems().addAll(menuItem1, menuItem2);
首先,我们创建了一个 ContextMenu 对象,然后创建了两个 MenuItem。在这个示例中,我们将这两个 MenuItem 添加到了 ContextMenu 中。添加 MenuItem 的方法是调用 ContextMenu 对象的 getItems()
方法,然后使用 addAll()
方法添加 MenuItem。
一旦创建了 ContextMenu,我们需要将其与组件相关联,以便在用户单击组件时显示。下面是一个演示如何将 ContextMenu 与 Button 组件关联的示例。
Button button = new Button("右击我");
button.setContextMenu(contextMenu);
这个示例中,我们创建了一个 Button 对象,设置了 Button 上的文本,并将 ContextMenu 设置为 Button 的右键菜单。这是通过调用 Button
类的 setContextMenu()
方法实现的。
下面是一个完整的 JavaFX 示例程序,它演示了如何创建一个 Button 和一个 ContextMenu,并将它们相关联。当用户右键单击 Button 时,将显示 ContextMenu。用户可以单击 MenuItem 来选择执行的操作。
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.ContextMenu;
import javafx.scene.control.MenuItem;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class ContextMenuExample extends Application {
@Override
public void start(Stage primaryStage) {
// 创建 Button
Button button = new Button("右击我");
// 创建 ContextMenu
ContextMenu contextMenu = new ContextMenu();
MenuItem menuItem1 = new MenuItem("复制");
MenuItem menuItem2 = new MenuItem("黏贴");
contextMenu.getItems().addAll(menuItem1, menuItem2);
// 将 ContextMenu 与 Button 相关联
button.setContextMenu(contextMenu);
// 在窗口中添加 Button
StackPane root = new StackPane();
root.getChildren().add(button);
Scene scene = new Scene(root, 300, 250);
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
ContextMenu 是 JavaFX 中一个很有用的控件,可以为您的应用程序增加更多的用户友好性。通过上面的示例,您应该已经学会了如何创建和使用 ContextMenu 了。