失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > JavaFX桌面应用开发-菜单栏-MenuBar Menu MenuItem

JavaFX桌面应用开发-菜单栏-MenuBar Menu MenuItem

时间:2023-10-27 11:11:05

相关推荐

JavaFX桌面应用开发-菜单栏-MenuBar Menu  MenuItem

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》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。