程序员的知识教程库

网站首页 > 教程分享 正文

JavaFX学习笔记014(菜单栏)(javafx包含功能)

henian88 2024-09-29 12:52:17 教程分享 112 ℃ 0 评论

引言

JavaFX的菜单栏(MenuBar)是一个用于创建应用程序菜单系统的用户界面控件。它通常包含菜单(Menu),而菜单中又包含菜单项(MenuItem)、分隔线(Separator)、和子菜单(SubMenu)等。

以下是关于JavaFX菜单栏的一些基本概念和用法:

创建菜单栏:

MenuBar menuBar = new MenuBar();

创建菜单:

Menu fileMenu = new Menu("文件");

创建菜单项:

MenuItem openMenuItem = new MenuItem("打开");

添加菜单项到菜单:

fileMenu.getItems().add(openMenuItem);

创建子菜单:

Menu subMenu = new Menu("更多选项");

将子菜单添加到菜单:

fileMenu.getItems().add(subMenu);

添加菜单到菜单栏:

menuBar.getMenus().add(fileMenu);

处理菜单项的点击事件:

openMenuItem.setOnAction(event -> {
    // 处理打开菜单项的代码
});

添加分隔线:

SeparatorMenuItem separator = new SeparatorMenuItem();
fileMenu.getItems().add(separator);

禁用和启用菜单项:

openMenuItem.setDisable(true); // 禁用菜单项
openMenuItem.setDisable(false); // 启用菜单项

设置快捷键:

openMenuItem.setAccelerator(KeyCombination.keyCombination("Ctrl+O"));

菜单样例


import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.*;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;

public class CompleteMenuDemo extends Application {

    @Override
    public void start(Stage primaryStage) {
        // 创建菜单栏
        MenuBar menuBar = new MenuBar();

        // 创建文件菜单
        Menu fileMenu = new Menu("文件");

        // 创建打开菜单项
        MenuItem openMenuItem = new MenuItem("打开");

        // 设置快捷键
        openMenuItem.setAccelerator(javafx.scene.input.KeyCombination.keyCombination("Ctrl+O"));

        // 处理打开菜单项的点击事件
        openMenuItem.setOnAction(event -> {
            System.out.println("打开文件");
        });

        // 创建保存菜单项
        MenuItem saveMenuItem = new MenuItem("保存");

        // 处理保存菜单项的点击事件
        saveMenuItem.setOnAction(event -> {
            System.out.println("保存文件");
        });

        // 创建分隔线
        SeparatorMenuItem separator = new SeparatorMenuItem();

        // 创建退出菜单项
        MenuItem exitMenuItem = new MenuItem("退出");

        // 处理退出菜单项的点击事件
        exitMenuItem.setOnAction(event -> {
            System.exit(0);
        });

        // 添加菜单项到文件菜单
        fileMenu.getItems().addAll(openMenuItem, saveMenuItem, separator, exitMenuItem);

        // 创建编辑菜单
        Menu editMenu = new Menu("编辑");

        // 创建剪切菜单项
        MenuItem cutMenuItem = new MenuItem("剪切");
        cutMenuItem.setOnAction(event -> {
            System.out.println("剪切文本");
        });

        // 创建复制菜单项
        MenuItem copyMenuItem = new MenuItem("复制");
        copyMenuItem.setOnAction(event -> {
            System.out.println("复制文本");
        });

        // 创建粘贴菜单项
        MenuItem pasteMenuItem = new MenuItem("粘贴");
        pasteMenuItem.setOnAction(event -> {
            System.out.println("粘贴文本");
        });

        // 添加菜单项到编辑菜单
        editMenu.getItems().addAll(cutMenuItem, copyMenuItem, pasteMenuItem);

        // 创建帮助菜单
        Menu helpMenu = new Menu("帮助");

        // 创建关于菜单项
        MenuItem aboutMenuItem = new MenuItem("关于");
        aboutMenuItem.setOnAction(event -> {
            System.out.println("关于菜单项被点击");
        });

        // 添加菜单项到帮助菜单
        helpMenu.getItems().add(aboutMenuItem);

        // 创建子菜单
        Menu subMenu = new Menu("更多选项");

        // 创建子菜单项
        MenuItem subMenuItem1 = new MenuItem("选项1");
        MenuItem subMenuItem2 = new MenuItem("选项2");

        // 添加子菜单项到子菜单
        subMenu.getItems().addAll(subMenuItem1, subMenuItem2);

        // 添加子菜单到文件菜单
        fileMenu.getItems().add(subMenu);

        // 添加文件、编辑和帮助菜单到菜单栏
        menuBar.getMenus().addAll(fileMenu, editMenu, helpMenu);

        // 创建垂直布局
        VBox root = new VBox();
        root.getChildren().add(menuBar);

        // 创建场景
        Scene scene = new Scene(root, 400, 300);

        // 设置舞台标题和场景
        primaryStage.setTitle("Complete Menu Demo");
        primaryStage.setScene(scene);

        // 显示舞台
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}





这个示例包含了文件、编辑和帮助三个菜单,其中文件菜单包括打开、保存、分隔线和退出四个菜单项;编辑菜单包括剪切、复制和粘贴三个菜单项;帮助菜单只包括一个关于菜单项。点击菜单项时,会在控制台输出相应的消息。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表