Tôi đang làm việc trên JavaFX 8 và SceneBuilder
. Tôi đã tạo một số nút radio trong Tệp FXML và chỉ định tên toggleGroup
vào danh sách nút radio trong đó. Vì vậy, bây giờ tôi muốn có được nút radio được chọn của toggleGroup
trong bộ điều khiển của mình, tôi có cần phải thực hiện lại tất cả các nút radio như các trường trong bộ điều khiển hay chỉ một đối tượng toggleGroup
. nút radio đó, không phải đối tượng nút).Cách nhận nút radio đã chọn từ ToggleGroup
Trả lời
Giả sử bạn có nhóm chuyển đổi và ba nút radio thuộc nhóm đó.
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);
Khi bạn chọn nút radio từ nhóm chuyển đổi đó, phương thức changed(...)
sau đây sẽ được gọi.
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
}
}
});
Điều này chưa bao giờ được trả lời đúng hoặc kỹ lưỡng, vì vậy tôi nghĩ tôi sẽ đăng giải pháp mà tôi nhận được.
Khi bạn tạo nút radio trong SceneBuilder
, thì C ALNG sử dụng SceneBuilder
để gán chúng cho một nhóm. Cách bạn truy cập nhóm đó thông qua Bộ điều khiển là đầu tiên tạo một biến loại ToggleGroup
trong Bộ điều khiển và đặt tên giống với tên bạn đã tạo trong SceneBuilder
. Sau đó, bạn có thể sử dụng nó. Dưới đây là ví dụ giả tạo về cách tôi đã thực hiện:
// 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
}
}
Mặc dù văn bản trả về từ thuộc tính getUserData
dài. Đây là một cách để có được chỉ là tên của nút radio:
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());
}
});
Hy vọng điều này sẽ giúp người xuống đường ...
@FXML
ToggleGroup right; //I called it right in SceneBuilder.
sau đâu đó trong phương pháp.
RadioButton selectedRadioButton = (RadioButton) right.getSelectedToggle();
String toogleGroupValue = selectedRadioButton.getText();
Nhanh chóng và đơn giản! – marw
- 1. Android nhận giá trị của nút radio đã chọn
- 2. Cách chọn nút radio?
- 3. Bộ chọn CSS cho nhãn của nút radio đã chọn
- 4. Chỉ chọn một nút radio từ listview
- 5. Làm cách nào để nhận nút radio từ hộp nhóm?
- 6. Cách nhận giá trị của nút radio đã chọn trong angularjs
- 7. Nút radio "Đã chọn = đã chọn" không thay đổi khi tùy chọn thay đổi
- 8. Cách nhận giá trị của Nút radio?
- 9. javascript radio đã chọn
- 10. lấy danh sách nút radio đã chọn trong xoay
- 11. Ringtone chọn - nút radio thiết
- 12. Nút radio Bootstrap Bỏ chọn
- 13. Nhận nút radio đã chọn không có trong danh sách trong ASP .NET
- 14. Truyền giá trị đã chọn từ các nút radio đến bộ điều khiển trong MVC
- 15. Nhận giá trị của nhóm nút radio
- 16. Tôi làm cách nào để có được giá trị nút radio đã chọn?
- 17. Nhận thuộc tính dữ liệu từ nút radio với jQuery
- 18. Nhóm nút radio và radio
- 19. jQuery Chuyển đổi Chọn nút radio?
- 20. nút radio chọn trên nhãn nhấp vào
- 21. Nút radio nào được chọn trong TRadioGroup?
- 22. Chọn nút radio thứ hai bằng cách sử dụng capybara
- 23. Đã chọn nút radio được đặt bằng Jquery, sử dụng bộ chọn id và lớp
- 24. Cách tùy chỉnh nút radio tùy chọn danh sách
- 25. Lấy giá trị của nút radio đã được chọn trước khi người dùng chọn một nút mới
- 26. jQuery thêm/xóa lớp css trên radio đã chọn
- 27. Cách phát hiện sự kiện bỏ chọn nút radio?
- 28. cách nhận trạng thái nút radio và liệu nó có được chọn không?
- 29. checked = "checked" không hiển thị dưới dạng nút radio đã chọn trong Chrome
- 30. Cách nhận ID tùy chọn đã chọn?
Tôi đã hỏi nếu tôi reqd. để làm cho 3 RadioButton một lần nữa trong bộ điều khiển (sau khi đã thực hiện chúng trong FXML), hoặc tôi chỉ có thể làm cho đối tượng ToggleGroup và truy cập vào nút được chọn bằng cách nào đó. –
@Rounaq_intel, thử chỉ cần thêm nhóm chuyển đổi vào bộ điều khiển và thêm người nghe vào câu trả lời ở trên. –
Cảm ơn, chỉ là những gì tôi đang tìm kiếm. – Kefirchiks