- java.lang.Object
-
- javafx.scene.control.MenuItem
-
- javafx.scene.control.RadioMenuItem
-
- All Implemented Interfaces:
Styleable
,EventTarget
,Toggle
public class RadioMenuItem extends MenuItem implements Toggle
A RadioMenuItem is a
MenuItem
that can be toggled (it uses theToggle
mixin). This means that RadioMenuItem has an API very similar in nature to other controls that useToggle
, such asRadioButton
andToggleButton
. RadioMenuItem is specifically designed for use within aMenu
, so refer to that class API documentation for more information on how to add a RadioMenuItem into it.To create a simple, ungrouped RadioMenuItem, do the following:
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"); } });
The problem with the example above is that this offers no benefit over using a normal MenuItem. As already mentioned, the purpose of a RadioMenuItem is to offer multiple choices to the user, and only allow for one of these choices to be selected at any one time (i.e. the selection should be mutually exclusive). To achieve this, you can place zero or more RadioMenuItem's into groups. When in groups, only one RadioMenuItem at a time within that group can be selected. To put two RadioMenuItem instances into the same group, simply assign them both the same value for
toggleGroup
. For example:
In this example, with both RadioMenuItem's assigned to the sameToggleGroup 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);
ToggleGroup
, only one item may be selected at any one time, and should the selection change, the ToggleGroup will take care of deselecting the previous item.
-
-
Property Summary
Properties Type Property Description BooleanProperty
selected
The selected state for thisToggle
.ObjectProperty<ToggleGroup>
toggleGroup
Represents theToggleGroup
that this RadioMenuItem belongs to.-
Properties declared in class javafx.scene.control.MenuItem
accelerator, disable, graphic, id, mnemonicParsing, onAction, onMenuValidation, parentMenu, parentPopup, style, text, visible
-
Properties declared in interface javafx.scene.control.Toggle
selected, toggleGroup
-
-
Field Summary
-
Fields declared in class javafx.scene.control.MenuItem
MENU_VALIDATION_EVENT
-
-
Constructor Summary
Constructors Constructor Description RadioMenuItem()
Constructs a RadioMenuItem with no display text.RadioMenuItem(String text)
Constructs a RadioMenuItem and sets the display text with the specified text.RadioMenuItem(String text, Node graphic)
Constructs a RadioMenuItem and sets the display text with the specified text and sets the graphicNode
to the given node.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description BooleanProperty
selectedProperty()
The selected state for thisToggle
.ObjectProperty<ToggleGroup>
toggleGroupProperty()
Represents theToggleGroup
that this RadioMenuItem belongs to.-
Methods declared in interface javafx.event.EventTarget
buildEventDispatchChain
-
Methods declared in class javafx.scene.control.MenuItem
acceleratorProperty, addEventHandler, disableProperty, fire, getAccelerator, getGraphic, getOnAction, getOnMenuValidation, getParentMenu, getParentPopup, getProperties, getPseudoClassStates, getStyleableParent, getStyleClass, getText, getTypeSelector, getUserData, graphicProperty, idProperty, isDisable, isMnemonicParsing, isVisible, mnemonicParsingProperty, onActionProperty, onMenuValidationProperty, parentMenuProperty, parentPopupProperty, removeEventHandler, setAccelerator, setDisable, setGraphic, setId, setMnemonicParsing, setOnAction, setOnMenuValidation, setParentMenu, setParentPopup, setStyle, setText, setUserData, setVisible, styleProperty, textProperty, visibleProperty
-
Methods declared in class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods declared in interface javafx.css.Styleable
getCssMetaData, getId, getStyle, getStyleableNode
-
Methods declared in interface javafx.scene.control.Toggle
getProperties, getToggleGroup, getUserData, isSelected, selectedProperty, setSelected, setToggleGroup, setUserData, toggleGroupProperty
-
-
-
-
Property Detail
-
toggleGroup
public final ObjectProperty<ToggleGroup> toggleGroupProperty
Represents theToggleGroup
that this RadioMenuItem belongs to.- Specified by:
toggleGroupProperty
in interfaceToggle
- See Also:
Toggle.getToggleGroup()
,Toggle.setToggleGroup(ToggleGroup)
-
selected
public final BooleanProperty selectedProperty
- Specified by:
selectedProperty
in interfaceToggle
- See Also:
Toggle.isSelected()
,Toggle.setSelected(boolean)
-
-
Constructor Detail
-
RadioMenuItem
public RadioMenuItem()
Constructs a RadioMenuItem with no display text.
-
RadioMenuItem
public RadioMenuItem(String text)
Constructs a RadioMenuItem and sets the display text with the specified text.- Parameters:
text
- the display text
-
-
Method Detail
-
toggleGroupProperty
public final ObjectProperty<ToggleGroup> toggleGroupProperty()
Represents theToggleGroup
that this RadioMenuItem belongs to.- Specified by:
toggleGroupProperty
in interfaceToggle
- See Also:
Toggle.getToggleGroup()
,Toggle.setToggleGroup(ToggleGroup)
-
selectedProperty
public final BooleanProperty selectedProperty()
Description copied from interface:Toggle
The selected state for thisToggle
.- Specified by:
selectedProperty
in interfaceToggle
- See Also:
Toggle.isSelected()
,Toggle.setSelected(boolean)
-
-