我正在使用JavaFX 8和SceneBuilder
。我在FXML文件中創建了一些單選按鈕,並在該單選按鈕列表中指定了一個toggleGroup
名稱。所以,現在我想在我的控制器中獲得toggleGroup
的選定單選按鈕,是否需要再次將所有單選按鈕設置爲控制器中的字段,或者只有toggleGroup
對象將使我選中的單選按鈕(只有單選按鈕,而不是按鈕對象)。如何從ToggleGroup中獲取選定的單選按鈕
5
A
回答
11
假設您有一個屬於該組的切換組和三個單選按鈕。
ToggleGroup group = new ToggleGroup();
RadioButton rb1 = new RadioButton("RadioButton1");
rb1.setUserData("RadioButton1");
rb1.setToggleGroup(group);
rb1.setSelected(true);
RadioButton rb2 = new RadioButton("RadioButton2");
rb2.setUserData("RadioButton2");
rb2.setToggleGroup(group);
RadioButton rb3 = new RadioButton("RadioButton3");
rb3.setUserData("RadioButton3");
rb3.setToggleGroup(group);
當您選擇從切換組單選按鈕,下面changed(...)
方法將被調用。
group.selectedToggleProperty().addListener(new ChangeListener<Toggle>(){
public void changed(ObservableValue<? extends Toggle> ov, Toggle old_toggle, Toggle new_toggle) {
if (group.getSelectedToggle() != null) {
System.out.println(group.getSelectedToggle().getUserData().toString());
// Do something here with the userData of newly selected radioButton
}
}
});
9
這是從來沒有適當或徹底的回答,所以我想我會張貼我得到的解決方案。
在SceneBuilder
中創建單選按鈕時,也使用SceneBuilder
將它們分配給組。通過控制器訪問該組的方式是首先在控制器中創建一個類型爲ToggleGroup
的變量,並將其命名爲與在SceneBuilder
中創建的變量完全相同的名稱。然後你可以使用它。這裏是我是如何做的僞代碼示例:
// your imports
public class Controller
{
@FXML ToggleGroup myGroup; //I called it myGroup in SceneBuilder as well.
public void myGroupAction(ActionEvent action)
{
System.out.println("Toggled: " + myGroup.getSelectedToggle().getUserData().toString());
}
public void initialize()
{
//whatever initialize code you have here
}
}
雖然文本從getUserData
屬性返回是漫長的。這是一種方式來獲得單選按鈕的只是名字:
myGroup.selectedToggleProperty().addListener(new ChangeListener<Toggle>()
{
@Override
public void changed(ObservableValue<? extends Toggle> ov, Toggle t, Toggle t1)
{
RadioButton chk = (RadioButton)t1.getToggleGroup().getSelectedToggle(); // Cast object to radio button
System.out.println("Selected Radio Button - "+chk.getText());
}
});
希望這可以幫助別人的道路...
6
@FXML
ToggleGroup right; //I called it right in SceneBuilder.
後某處方法。
RadioButton selectedRadioButton = (RadioButton) right.getSelectedToggle();
String toogleGroupValue = selectedRadioButton.getText();
+0
快速簡單! – marw
相關問題
- 1. Flash單選按鈕:如何獲取選定的單選按鈕?
- 2. 如何從php中獲取選定的單選按鈕值onclick
- 3. 從div中的單選按鈕獲取選定的單選按鈕?
- 4. 獲取單選按鈕的選定值
- 5. 如何從expressjs中獲取表單中選定的單選按鈕值?
- 6. 如何獲取ListView中每一行的選定單選按鈕
- 7. 如何在asp.net中獲取選定的單選按鈕列表?
- 8. 如何獲取jquery中單選按鈕列表的選定值?
- 9. 從jquery中獲取選定的單選按鈕的文本值
- 10. 如何從android中的五個單選按鈕獲取選定的單選按鈕值?
- 11. 從選定的單選按鈕中獲取文本
- 12. 獲取選中單選按鈕的值
- 13. GWT:如何獲取選定的單選按鈕的值
- 14. 如何獲取取消選中的單選按鈕的值?
- 15. 沒有正確獲取單選按鈕中的單選按鈕
- 16. 如何獲取單選按鈕的值?
- 17. 如何檢查單選按鈕時如何獲取單選按鈕的文本?
- 18. 如何獲取iframe中選中的單選按鈕的值
- 19. 從選定的單選按鈕獲取angularjs值
- 20. 單選按鈕的jquery中獲取單選按鈕的選中狀態ID
- 21. 從中繼器中的單選按鈕獲取選定的單選按鈕列表值
- 22. 獲取所選單選按鈕的值
- 23. 如何從android中的id獲取單選按鈕的對象?
- 24. 從選定的單選按鈕中選擇下一個單選按鈕
- 25. 如何獲取Razor代碼中所選單選按鈕的ID?
- 26. 如何獲取複選框中的單選按鈕外觀?
- 27. 如何僅使用React獲取選中的單選按鈕值?
- 28. 如何使用JavaScript獲取單選按鈕的選中值
- 29. 單擊按鈕時獲取所選單選按鈕的編號
- 30. 如何獲取RadioButtonList中特定單選按鈕的HTML ID
我在問我是否需要。在控制器中再次創建3個RadioButton(在FXML中創建它們之後),或者我只能製作ToggleGroup對象並以某種方式訪問所選按鈕。 –
@Rounaq_intel,嘗試將togglegroup添加到控制器並在上面的答案中添加偵聽器。 –
謝謝,就是我在找的東西。 – Kefirchiks