1:MenuBar、Menu 、MenuItem 是什么
如下例子:MenuBar就相当于菜单栏的那个长条Menu相当于菜单栏的File Edit Source...等选项MenuItem就是New、Open File等功能选项
MenuBar:创建Menu 的底部Menu需要创建在MenuBar的上面Menu :创建一个可操作的选项MenuItem :创建子菜单
2:代码说明一切
运行结果:
package application;import javafx.application.Application;import javafx.scene.Scene;import javafx.scene.control.Menu;import javafx.scene.control.MenuBar;import javafx.scene.control.MenuItem;import javafx.scene.image.ImageView;import javafx.scene.input.KeyCombination;import javafx.scene.layout.AnchorPane;import javafx.stage.Stage;public class Main6 extends Application{public static void main(String[] args) {launch(args);}@Overridepublic void start(Stage primaryStage) throws Exception {//创建布局类AnchorPane anchorPane = new AnchorPane();//创建MenuBarMenuBar menuBar = new MenuBar();menuBar.setStyle("-fx-background-color:red");//创建MenuMenu menu1 = new Menu("File");Menu menu2 = new Menu("Edit");Menu menu3 = new Menu("Project");//Menu键入到MenuBarmenuBar.getMenus().addAll(menu1,menu2,menu3);//创建MenuItem类//还可以对MenuItem设置图标MenuItem menuItem1 = new MenuItem("New File",new ImageView("./img/icon.png"));MenuItem menuItem2 = new MenuItem("Open File");//设置menuItem的快捷键menuItem2.setAccelerator(KeyCombination.valueOf("SHIFT+M"));MenuItem menuItem3 = new MenuItem("Run As Admin");MenuItem menuItem4 = new MenuItem("ReBack");MenuItem menuItem5 = new MenuItem("New File1");//将MenuItem放在对应的Menu上menu1.getItems().addAll(menuItem1,menuItem2);menu2.getItems().addAll(menuItem3,menuItem4);menu3.getItems().addAll(menuItem5);//将menuBar加入到布局类anchorPane上anchorPane.getChildren().add(menuBar);//创建场景图Scene scene = new Scene(anchorPane);primaryStage.setScene(scene);primaryStage.setHeight(400);primaryStage.setWidth(500);primaryStage.setTitle("菜单栏学习");primaryStage.show();}}
3:MenuItem上嵌套Menu
效果如下 有一个向右的小箭头 鼠标放上去后会有一个Menu弹出Menu上会有很多MenuItem
3.1:运行效果
3.2:代码实现
package application;import java.security.GeneralSecurityException;import javafx.application.Application;import javafx.scene.Scene;import javafx.scene.control.Menu;import javafx.scene.control.MenuBar;import javafx.scene.control.MenuItem;import javafx.scene.control.SeparatorMenuItem;import javafx.scene.image.ImageView;import javafx.scene.input.KeyCombination;import javafx.scene.layout.AnchorPane;import javafx.stage.Stage;public class Main6 extends Application{public static void main(String[] args) {launch(args);}@Overridepublic void start(Stage primaryStage) throws Exception {//创建布局类AnchorPane anchorPane = new AnchorPane();//创建MenuBarMenuBar menuBar = new MenuBar();menuBar.setStyle("-fx-background-color:red");//创建MenuMenu menu1 = new Menu("File");Menu menu2 = new Menu("Edit");Menu menu3 = new Menu("Project");//Menu键入到MenuBarmenuBar.getMenus().addAll(menu1,menu2,menu3);//创建分割线SeparatorMenuItem separator1 = new SeparatorMenuItem();SeparatorMenuItem separator2 = new SeparatorMenuItem();//创建MenuItem类//还可以对MenuItem设置图标MenuItem menuItem1 = new MenuItem("New File",new ImageView("./img/icon.png"));MenuItem menuItem2 = new MenuItem("Open File");//设置menuItem的快捷键menuItem2.setAccelerator(KeyCombination.valueOf("SHIFT+M"));MenuItem menuItem3 = new MenuItem("Run As Admin");MenuItem menuItem4 = new MenuItem("ReBack");MenuItem menuItem5 = new MenuItem("New File1");MenuItem menuItem6 = new MenuItem("New File6");MenuItem menuItem7 = new MenuItem("惊喜1");MenuItem menuItem8 = new MenuItem("惊喜2");//创建MenuMenu menuNode = new Menu("点我进入下一层");menuNode.getItems().addAll(menuItem7,menuItem8);//将MenuItem放在对应的Menu上menu1.getItems().addAll(menuItem1,separator1,menuItem2,separator2,menuItem5,menuNode);//将分割线加进来menu2.getItems().addAll(menuItem3,menuItem4);menu3.getItems().addAll(menuItem6);//将menuBar加入到布局类anchorPane上anchorPane.getChildren().add(menuBar);//创建场景图Scene scene = new Scene(anchorPane);primaryStage.setScene(scene);primaryStage.setHeight(400);primaryStage.setWidth(500);primaryStage.setTitle("菜单栏学习");primaryStage.show();}}
如果觉得《JavaFX桌面应用开发-菜单栏-MenuBar Menu MenuItem》对你有帮助,请点赞、收藏,并留下你的观点哦!