📜  JavaFX |带有示例的 ContextMenu(1)

📅  最后修改于: 2023-12-03 15:16:03.441000             🧑  作者: Mango

JavaFX | 带有示例的 ContextMenu

JavaFX 的 ContextMenu 是一种右键菜单,可以在用户单击应用程序中的组件时显示。ContextMenu 可以包含多个 MenuItem,它们可以执行与组件相关的一些操作。本文将为您介绍如何创建一个基本的 ContextMenu,并提供一个示例。

创建 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,我们需要将其与组件相关联,以便在用户单击组件时显示。下面是一个演示如何将 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 了。