Module  javafx.controls
软件包  javafx.scene.control

Class RadioMenuItem

  • All Implemented Interfaces:
    StyleableEventTargetToggle


    public class RadioMenuItem
    extends MenuItem
    implements Toggle

    RadioMenuItem是一个MenuItem可以切换(它使用Toggle mixin)。 这意味着RadioMenuItem的API性质与使用Toggle其他控件(如RadioButtonToggleButton非常相似。 RadioMenuItem专门设计用于Menu ,因此请参考该类API文档以获取有关如何在其中添加RadioMenuItem的更多信息。

    要创建一个简单的,未分组的RadioMenuItem,请执行以下操作:

       RadioMenuItem radioItem = new RadioMenuItem("radio text"); radioItem.setSelected(false); radioItem.setOnAction(new EventHandler<ActionEvent>() { @Override public void handle(ActionEvent e) { System.out.println("radio toggled"); } });  

    上述示例的问题是,这不利于使用普通菜单项。 如前所述,RadioMenuItem的目的是为用户提供多种选择,并且只允许在任何一个时间选择这些选择之一(即选择应该是相互排斥的 )。 要实现这一点,您可以将零个或多个RadioMenuItem放入组中。 在组中,可以选择该组内每次只有一个RadioMenuItem。 要将两个RadioMenuItem实例放入同一个组,只需为它们分配toggleGroup的相同值。 例如:

       ToggleGroup toggleGroup = new ToggleGroup(); RadioMenuItem radioItem1 = new RadioMenuItem("Option 1"); radioItem.setOnAction(new EventHandler<ActionEvent>() { @Override public void handle(ActionEvent e) { System.out.println("radio toggled"); } }); radioItem1.setToggleGroup(toggleGroup); RadioMenuItem radioItem2 = new RadioMenuItem("Option 2"); radioItem.setOnAction(new EventHandler<ActionEvent>() { @Override public void handle(ActionEvent e) { System.out.println("radio toggled"); } }); radioItem2.setToggleGroup(toggleGroup);  
    在这个例子中,由于RadioMenuItem的两个分配给相同的ToggleGroup ,所以在任何一个时间只能选择一个项目,如果选择更改,则ToggleGroup将会关闭取消选择上一个项目。
    从以下版本开始:
    JavaFX 2.0
    另请参见:
    MenuItemMenu