📜  JavaFX |菜单栏和菜单(1)

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

JavaFX |菜单栏和菜单

JavaFX是一种在Java平台上构建富客户端应用程序的框架。它提供了许多GUI组件和工具,其中包括菜单栏和菜单。

菜单栏是一个常见的GUI组件,通常用于放置菜单以及与应用程序中的其他部分进行交互。菜单是一个用于展示和选择操作的弹出式列表。

创建菜单栏和菜单

要创建菜单栏和菜单,可以使用JavaFX的Menu和MenuBar类。以下是一个示例:

MenuBar menuBar = new MenuBar(); // 创建一个菜单栏

Menu fileMenu = new Menu("文件"); // 创建一个名为"文件"的菜单

MenuItem openItem = new MenuItem("打开"); // 创建一个名为"打开"的菜单项
MenuItem saveItem = new MenuItem("保存"); // 创建一个名为"保存"的菜单项

fileMenu.getItems().addAll(openItem, saveItem); // 将两个菜单项添加到"文件"菜单中

menuBar.getMenus().add(fileMenu); // 将"文件"菜单添加到菜单栏中
菜单项

菜单项(MenuItem)是菜单(Menu)中的选项。它们通常用于触发一个操作,例如打开一个文件或退出应用程序。以下是一个示例:

MenuItem openItem = new MenuItem("打开");
openItem.setOnAction((event) -> {
  // 处理打开操作
});

MenuItem exitItem = new MenuItem("退出");
exitItem.setOnAction((event) -> {
  // 处理退出操作
});

Menu fileMenu = new Menu("文件");
fileMenu.getItems().addAll(openItem, new SeparatorMenuItem(), exitItem);

在上面的示例中,我们创建了两个菜单项,并将它们添加到一个名为"文件"的菜单中。注意到我们还添加了一个分隔符(SeparatorMenuItem)来分隔两个菜单项。

快捷键

菜单项还支持快捷键。这些键可以用于在不打开菜单的情况下快速选择一个操作。以下是一个示例:

MenuItem openItem = new MenuItem("打开");
openItem.setAccelerator(KeyCombination.keyCombination("Ctrl+O"));

在上面的示例中,我们将Ctrl+O设置为打开快捷键。

上下文菜单

JavaFX还支持上下文菜单(ContextMenu),它是一个菜单,会在用户右键单击某个控件时弹出。以下是一个示例:

ContextMenu contextMenu = new ContextMenu();
MenuItem cutItem = new MenuItem("剪切");
MenuItem copyItem = new MenuItem("复制");
MenuItem pasteItem = new MenuItem("粘贴");
contextMenu.getItems().addAll(cutItem, copyItem, pasteItem);

TextField textField = new TextField();
textField.setContextMenu(contextMenu);

在上面的示例中,我们创建了一个TextField,并将上下文菜单设置为包含三个菜单项的ContextMenu。

如上述,JavaFX的菜单栏和菜单在GUI设计中起到了重要的作用,可为我们的应用程序提供更加友好和丰富的用户体验。