当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


JavaFX 类 CheckMenuItem用法及代码示例


CheckMenuItem是JavaFX库的一部分。 CheckMenuItem可以添加到菜单中,并且有两个状态处于选中状态和未选中状态。用户可以在这两种状态之间切换菜单项。 CheckMenuItem继承自MenuItem类。


该类的构造函数是:

  1. CheckMenuItem(String t):创建带有指定文本的检查菜单
  2. CheckMenuItem(String t, Node g):创建具有指定文本和图形的检查菜单

常用方法:


方法 说明
isSelected() 返回是否选择了menuitem
selectedProperty() 代表此CheckMenuItem的当前状态
setSelected(boolean v) 设置所选属性的值

以下示例程序旨在说明JavaFX的CheckMenuItem类:

  1. Java程序,用于创建菜单栏并向其中添加菜单,还向菜单添加检查菜单:该程序将创建一个菜单栏,名称为menu_bar。将通过名称菜单创建一个菜单,并将3个检查菜单menuitem1,menuitem2,menuitem3添加到菜单中,并将该菜单添加到菜单栏menu_bar。菜单栏将在场景内创建,而场景又将托管在舞台内。函数setTitle()用于为舞台提供标题。然后创建一个VBox,在其上调用addChildren()方法以将菜单栏附加到场景中。最后,调用show()方法以显示最终结果。
    // Java program to create a menu bar and add 
    // menu to it and also add checkmenuitems 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 checkmenuitems_0 extends Application { 
      
        // launch the application 
        public void start(Stage stage) 
        { 
            // set title for the stage 
            stage.setTitle("creating check menu items"); 
      
            // create a menu 
            Menu menu = new Menu("Menu"); 
      
            // create menuitems 
            CheckMenuItem menuitem1 = new CheckMenuItem("menu item 1"); 
            CheckMenuItem menuitem2 = new CheckMenuItem("menu item 2"); 
            CheckMenuItem menuitem3 = new CheckMenuItem("menu item 3"); 
      
            // add menu items to menu 
            menu.getItems().add(menuitem1); 
            menu.getItems().add(menuitem2); 
            menu.getItems().add(menuitem3); 
      
            // create a menubar 
            MenuBar menu_bar = new MenuBar(); 
      
            // add menu to menubar 
            menu_bar.getMenus().add(menu); 
      
            // create a VBox 
            VBox vbox = new VBox(menu_bar); 
      
            // create a scene 
            Scene scene = new Scene(vbox, 500, 300); 
      
            // set the scene 
            stage.setScene(scene); 
      
            stage.show(); 
        } 
      
        public static void main(String args[]) 
        { 
            // launch the application 
            launch(args); 
        } 
    }

    输出:

  2. Java程序,用于创建菜单栏并向其中添加菜单,还向菜单添加检查菜单,还添加事件处理程序来处理事件:该程序将创建一个菜单栏,名称为menu_bar。将通过名称菜单创建一个菜单,并将3个检查菜单menuitem1,menuitem2,menuitem3添加到菜单中,并将该菜单添加到菜单栏menu_bar。菜单栏将在场景内创建,而场景又将托管在舞台内。函数setTitle()用于为舞台提供标题。然后创建一个VBox,在其上调用addChildren()方法以将菜单栏附加到场景中。最后,调用show()方法以显示最终结果。也将创建一个标签,其中将显示选择了哪个检查菜单。当用户单击检查菜单项时,将创建一个动作事件来处理该动作。
    // Java program to create a menu bar and add 
    // menu to it and also add checkmenuitems to menu 
    // and also add event handler 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 checkmenuitems_2 extends Application { 
      
        // launch the application 
        public void start(Stage stage) 
        { 
            // set title for the stage 
            stage.setTitle("creating check menu items"); 
      
            // create a menu 
            Menu menu = new Menu("Menu"); 
      
            // create menuitems 
            CheckMenuItem menuitem1 = new CheckMenuItem("menu item 1"); 
            CheckMenuItem menuitem2 = new CheckMenuItem("menu item 2"); 
            CheckMenuItem menuitem3 = new CheckMenuItem("menu item 3"); 
      
            // add menu items to menu 
            menu.getItems().add(menuitem1); 
            menu.getItems().add(menuitem2); 
            menu.getItems().add(menuitem3); 
      
            // label to display events 
            Label description = new Label("\t\t\t\t"
                                          + "no menu item selected"); 
      
            // create events for menu items 
            // action event 
            EventHandler<ActionEvent> event = new EventHandler<ActionEvent>() { 
                public void handle(ActionEvent e) 
                { 
                    if (((CheckMenuItem)e.getSource()).isSelected()) 
                        description.setText 
                         ("\t\t\t\t" + ((CheckMenuItem)e.getSource()) 
                           .getText() + " selected"); 
                    else
                        description.setText 
                         ("\t\t\t\t" + ((CheckMenuItem)e.getSource()) 
                           .getText() + " deselected"); 
                } 
            }; 
      
            // add event 
            menuitem1.setOnAction(event); 
            menuitem2.setOnAction(event); 
            menuitem3.setOnAction(event); 
      
            // create a menubar 
            MenuBar menu_bar = new MenuBar(); 
      
            // add menu to menubar 
            menu_bar.getMenus().add(menu); 
      
            // create a VBox 
            VBox vbox = new VBox(menu_bar, description); 
      
            // create a scene 
            Scene scene = new Scene(vbox, 500, 300); 
      
            // set the scene 
            stage.setScene(scene); 
      
            stage.show(); 
        } 
      
        public static void main(String args[]) 
        { 
            // launch the application 
            launch(args); 
        } 
    }

    输出:

  3. 注意:以上程序可能无法在在线IDE中运行,请使用离线编译器。

    参考:https://docs.oracle.com/javafx/2/api/javafx/scene/control/CheckMenuItem.html



相关用法


注:本文由纯净天空筛选整理自andrew1234大神的英文原创作品 JavaFX | CheckMenuItem with examples。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。