JavaFX |菜单栏和菜单

菜单 是一个弹出式菜单,包含用户单击菜单时显示的多个菜单项。用户可以选择一个菜单项,然后菜单进入隐藏状态。

null

梅努巴 通常位于包含多个菜单的屏幕顶部。JavaFX菜单栏通常是一个菜单栏的实现。

MenuBar类的构造函数是:

  1. 梅努巴() :创建一个新的空菜单栏。
  2. 菜单栏(菜单…m) :使用给定的菜单集创建新菜单栏。

菜单类的构造函数是:

  1. 菜单() :创建一个空菜单
  2. 菜单(字符串s) :创建标签为字符串的菜单
  3. 菜单(字符串s,节点n) :构造菜单并使用指定文本设置显示文本,并将图形节点设置为给定节点。
  4. 菜单(字符串s、节点n、菜单项…i) :构造菜单并使用指定文本设置显示文本,将图形节点设置为给定节点,并将给定项目插入项目列表。

常用方法:

方法 解释
getItems() 返回菜单项
隐藏 隐藏菜单
show() 显示菜单
getMenus() 要在此菜单栏中显示的菜单。
isUseSystemMenuBar() 获取属性useSystemMenuBar的值
setUseSystemMenuBar(布尔值v) 设置属性useSystemMenuBar的值。
setOnHidden(EventHandler v) 设置onHidden属性的值。
setOnHiding(EventHandler v) 设置属性onHiding的值。
设置显示(EventHandler v) 设置显示属性的值。
setOnShown(事件处理程序v) 设置显示属性的值。

下面的程序演示了菜单栏和菜单类:

  1. Java程序,用于创建菜单栏并向其中添加菜单,以及向菜单中添加菜单项: 该程序创建一个由名称指示的菜单栏 兆字节 .将按名称创建菜单 M 和3个菜单 m1 , m2 , m3 将被添加到菜单中 M 菜单呢 M 将被添加到菜单栏 兆字节 。菜单栏将在场景中创建,而场景又将在舞台中托管。函数setTitle()用于为舞台提供标题。然后创建一个VBox,在该VBox上调用addChildren()方法将菜单栏附加到场景中。最后,调用show()方法来显示最终结果。

    // Java program to create a menu bar and add
    // menu to it and also add menuitems to menu
    import javafx.application.Application;
    import javafx.scene.Scene;
    import javafx.scene.control.Button;
    import javafx.scene.layout.*;
    import javafx.event.ActionEvent;
    import javafx.event.EventHandler;
    import javafx.scene.control.*;
    import javafx.stage.Stage;
    import javafx.scene.control.Alert.AlertType;
    import java.time.LocalDate;
    public class MenuBar_1 extends Application {
    // launch the application
    public void start(Stage s)
    {
    // set title for the stage
    s.setTitle( "creating MenuBar" );
    // create a menu
    Menu m = new Menu( "Menu" );
    // create menuitems
    MenuItem m1 = new MenuItem( "menu item 1" );
    MenuItem m2 = new MenuItem( "menu item 2" );
    MenuItem m3 = new MenuItem( "menu item 3" );
    // add menu items to menu
    m.getItems().add(m1);
    m.getItems().add(m2);
    m.getItems().add(m3);
    // create a menubar
    MenuBar mb = new MenuBar();
    // add menu to menubar
    mb.getMenus().add(m);
    // create a VBox
    VBox vb = new VBox(mb);
    // create a scene
    Scene sc = new Scene(vb, 500 , 300 );
    // set the scene
    s.setScene(sc);
    s.show();
    }
    public static void main(String args[])
    {
    // launch the application
    launch(args);
    }
    }

    
    

    输出 : 图片[1]-JavaFX |菜单栏和菜单-yiteyi-C++库

  2. Java程序,用于创建菜单栏并向其中添加菜单,还可以向菜单中添加菜单项,还可以添加事件侦听器来处理事件: 该程序创建一个由名称指示的菜单栏 兆字节 .将按名称创建菜单 M 和3个菜单 m1 , m2 , m3 将被添加到菜单中 M 菜单呢 M 将被添加到菜单栏 兆字节 。菜单栏将在场景中创建,而场景又将在舞台中托管。函数setTitle()用于为舞台提供标题。然后创建一个VBox,在该VBox上调用addChildren()方法将菜单栏附加到场景中。最后,调用show()方法来显示最终结果。还将创建一个标签,显示选择了哪个菜单项。当用户单击菜单项时,将创建一个操作事件来处理该操作。

    // Java program to create a menu bar and add menu to
    // it and also add menuitems to menu and also add
    // an event listener to handle the events
    import javafx.application.Application;
    import javafx.scene.Scene;
    import javafx.scene.control.Button;
    import javafx.scene.layout.*;
    import javafx.event.ActionEvent;
    import javafx.event.EventHandler;
    import javafx.scene.control.*;
    import javafx.stage.Stage;
    import javafx.scene.control.Alert.AlertType;
    import java.time.LocalDate;
    public class MenuBar_2 extends Application {
    // launch the application
    public void start(Stage s)
    {
    // set title for the stage
    s.setTitle( "creating MenuBar" );
    // create a menu
    Menu m = new Menu( "Menu" );
    // create menuitems
    MenuItem m1 = new MenuItem( "menu item 1" );
    MenuItem m2 = new MenuItem( "menu item 2" );
    MenuItem m3 = new MenuItem( "menu item 3" );
    // add menu items to menu
    m.getItems().add(m1);
    m.getItems().add(m2);
    m.getItems().add(m3);
    // label to display events
    Label l = new Label( " "
    + "no menu item selected" );
    // create events for menu items
    // action event
    EventHandler<ActionEvent> event = new EventHandler<ActionEvent>() {
    public void handle(ActionEvent e)
    {
    l.setText( " " + ((MenuItem)e.getSource()).getText() +
    " selected" );
    }
    };
    // add event
    m1.setOnAction(event);
    m2.setOnAction(event);
    m3.setOnAction(event);
    // create a menubar
    MenuBar mb = new MenuBar();
    // add menu to menubar
    mb.getMenus().add(m);
    // create a VBox
    VBox vb = new VBox(mb, l);
    // create a scene
    Scene sc = new Scene(vb, 500 , 300 );
    // set the scene
    s.setScene(sc);
    s.show();
    }
    public static void main(String args[])
    {
    // launch the application
    launch(args);
    }
    }

    
    

    输出 : 图片[2]-JavaFX |菜单栏和菜单-yiteyi-C++库

    注: 以上程序可能无法在联机IDE中运行,请使用脱机转换器。

    参考:

© 版权声明
THE END
喜欢就支持一下吧
点赞5 分享