📅  最后修改于: 2023-12-03 15:01:36.406000             🧑  作者: Mango
JavaFX 菜单栏是用户界面中的一种常见组件,它通常位于窗口顶部,在这里您可以添加各种菜单项以及子菜单项,通过JavaFX的菜单栏,您可以轻松地构建一个完整的应用程序界面。
在JavaFX中创建菜单栏很简单,只需要使用MenuBar类即可。下面是一个基本的示例:
MenuBar menuBar = new MenuBar();
在菜单栏中添加菜单也相对简单,只需要使用Menu类即可。下面是一个示例:
Menu fileMenu = new Menu("File");
JavaFX支持使用MenuItem类创建菜单项,您可以将菜单项添加到菜单中,如下所示:
MenuItem openMenuItem = new MenuItem("Open");
fileMenu.getItems().add(openMenuItem);
在JavaFX中,也可以使用SubMenu类创建子菜单,如下所示:
Menu subMenu = new Menu("Sub-menu");
MenuItem subMenuItem1 = new MenuItem("Sub-menu item 1");
MenuItem subMenuItem2 = new MenuItem("Sub-menu item 2");
subMenu.getItems().addAll(subMenuItem1, subMenuItem2);
fileMenu.getItems().add(new SeparatorMenuItem());
fileMenu.getItems().add(subMenu);
在JavaFX中,您可以为菜单项添加事件处理程序。下面是一个示例:
openMenuItem.setOnAction(e -> {
FileChooser fileChooser = new FileChooser();
File selectedFile = fileChooser.showOpenDialog(stage);
if (selectedFile != null) {
// Do something with the selected file
}
});
下面是一个完整的JavaFX菜单栏示例:
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.*;
import javafx.scene.layout.BorderPane;
import javafx.stage.FileChooser;
import javafx.stage.Stage;
import java.io.File;
public class MenuBarExample extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
BorderPane root = new BorderPane();
MenuBar menuBar = new MenuBar();
root.setTop(menuBar);
// Create File menu
Menu fileMenu = new Menu("File");
MenuItem newMenuItem = new MenuItem("New");
MenuItem openMenuItem = new MenuItem("Open");
MenuItem saveMenuItem = new MenuItem("Save");
MenuItem exitMenuItem = new MenuItem("Exit");
fileMenu.getItems().addAll(newMenuItem, openMenuItem, saveMenuItem, new SeparatorMenuItem(), exitMenuItem);
openMenuItem.setOnAction(e -> {
FileChooser fileChooser = new FileChooser();
File selectedFile = fileChooser.showOpenDialog(primaryStage);
if (selectedFile != null) {
// Do something with the selected file
}
});
exitMenuItem.setOnAction(e -> {
primaryStage.close();
});
// Create Edit menu
Menu editMenu = new Menu("Edit");
MenuItem cutMenuItem = new MenuItem("Cut");
MenuItem copyMenuItem = new MenuItem("Copy");
MenuItem pasteMenuItem = new MenuItem("Paste");
editMenu.getItems().addAll(cutMenuItem, copyMenuItem, pasteMenuItem);
// Create Help menu
Menu helpMenu = new Menu("Help");
MenuItem aboutMenuItem = new MenuItem("About");
helpMenu.getItems().add(aboutMenuItem);
menuBar.getMenus().addAll(fileMenu, editMenu, helpMenu);
primaryStage.setScene(new Scene(root, 400, 300));
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
JavaFX菜单栏是JavaFX用户界面中很重要的部分,您可以使用MenuBar、Menu、MenuItem、SeparatorMenuItem、SubMenu等类创建菜单,您还可以为菜单项添加事件处理程序。