CheckMenuItem是JavaFX库的一部分。 CheckMenuItem可以添加到菜单中,并且有两个状态处于选中状态和未选中状态。用户可以在这两种状态之间切换菜单项。 CheckMenuItem继承自MenuItem类。
该类的构造函数是:
- CheckMenuItem(String t):创建带有指定文本的检查菜单
- CheckMenuItem(String t, Node g):创建具有指定文本和图形的检查菜单
常用方法:
方法 | 说明 |
---|---|
isSelected() | 返回是否选择了menuitem |
selectedProperty() | 代表此CheckMenuItem的当前状态 |
setSelected(boolean v) | 设置所选属性的值 |
以下示例程序旨在说明JavaFX的CheckMenuItem类:
- 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); } }
输出:
- 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); } }
输出:
注意:以上程序可能无法在在线IDE中运行,请使用离线编译器。
参考:https://docs.oracle.com/javafx/2/api/javafx/scene/control/CheckMenuItem.html
相关用法
- JavaFX 类 Box用法及代码示例
- JavaFX 类 Arc用法及代码示例
- JavaFX 类 Cylinder用法及代码示例
- JavaFX 类 Sphere用法及代码示例
- JavaFX 类 DatePicker用法及代码示例
- JavaFX 类 Alert用法及代码示例
- JavaFX 类 ColorPicker用法及代码示例
- JavaFX 类 RadioButton用法及代码示例
- JavaFX 类 ComboBox用法及代码示例
- JavaFX 类 QuadCurve用法及代码示例
- JavaFX 类 Button用法及代码示例
- JavaFX 类 CubicCurve用法及代码示例
- JavaFX 类 PointLight用法及代码示例
- JavaFX 类 Ellipse用法及代码示例
- JavaFX 类 ContextMenu用法及代码示例
注:本文由纯净天空筛选整理自andrew1234大神的英文原创作品 JavaFX | CheckMenuItem with examples。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。