我有以下FXML:
<fx:define><ToggleGroup fx:id="toggleGroup"/></fx:define>
<Menu text="gender" onAction="#handleChange">
<RadioMenuItem text="%male" toggleGroup="$toggleGroup"/>
<RadioMenuItem text="%female" toggleGroup="$toggleGroup"/>
</Menu>
有没有办法在RadioMenuItem上设置一个值?
我想使用以下内容:
@FXML public void handleChange(ActionEvent e) {
RadioMenuItem selectedItem = (RadioMenuItem)event.getTarget();
// here I need a value from a RadioMenuItem
// Male or female? (language dependent)
}
由于文本依赖于语言,我无法使用它。我可以访问RadioMenuItem上还有其他属性吗? fx:id
不是这样的。可能是fx:value
或fx:constant
?
答案 0 :(得分:0)
userData
属性。
代码将是
<fx:define><ToggleGroup fx:id="toggleGroup"/></fx:define>
<Menu text="gender" onAction="#handleChange">
<RadioMenuItem text="%male" toggleGroup="$toggleGroup" userData="m"/>
<RadioMenuItem text="%female" toggleGroup="$toggleGroup" userData="f"/>
</Menu>
然后你可以像
一样使用它@FXML public void handleChange(ActionEvent e) {
RadioMenuItem selectedItem = (RadioMenuItem)event.getTarget();
String value = (String)selectedItem.getUserData(); // This returns the data as Object.
}