设置RadioMenuItem值

时间:2017-01-26 10:52:14

标签: java fxml

我有以下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:valuefx:constant

1 个答案:

答案 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.
}