网站首页 > 教程分享 正文
引言
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);
}
}
这个示例包含了文件、编辑和帮助三个菜单,其中文件菜单包括打开、保存、分隔线和退出四个菜单项;编辑菜单包括剪切、复制和粘贴三个菜单项;帮助菜单只包括一个关于菜单项。点击菜单项时,会在控制台输出相应的消息。
猜你喜欢
- 2024-09-29 JavaFX-实现画圆弧(java 画圆)
- 2024-09-29 JavaFX文件选择器(java 文件选择器)
- 2024-09-29 JavaFx 实现按钮防抖和软件重启(Kotlin)
- 2024-09-29 JavaFX学习笔记017(单选按钮和复选框)
- 2024-09-29 JavaFX 折线图(java swing 折线图)
- 2024-09-29 JavaFX 文本字段(javafx 文本编辑器)
- 2024-09-29 还有用Eclipse的吗?这有一个图形编辑框架,据说很厉害!
- 2024-09-29 JavaFX学习入门篇,想用Java写窗口应用的同学可以看看
- 2024-09-29 JavaFX 滑块(javafx scrollpane)
- 2024-09-29 javafx做的航天事件管理系统(javafx做的航天事件管理系统有哪些)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- css导航条 (66)
- sqlinsert (63)
- js提交表单 (60)
- param (62)
- parentelement (65)
- jquery分享 (62)
- check约束 (64)
- curl_init (68)
- sql if语句 (69)
- import (66)
- chmod文件夹 (71)
- clearinterval (71)
- pythonrange (62)
- 数组长度 (61)
- javafx (59)
- 全局消息钩子 (64)
- sort排序 (62)
- jdbc (69)
- php网页源码 (59)
- assert h (69)
- httpclientjar (60)
- postgresql conf (59)
- winform开发 (59)
- mysql数字类型 (71)
- drawimage (61)
本文暂时没有评论,来添加一个吧(●'◡'●)