2017-01-26 3 views
0

I以下のFXMLあります設定RadioMenuItem値

<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

見つけた! 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. 
} 
のようにそれを使用することができますでしょう