Pracuję nad JavaFX 8 i SceneBuilder
. Stworzyłem kilka przycisków radiowych w pliku FXML i określiłem nazwę toggleGroup
na listę przycisków radiowych. Tak więc, teraz chcę uzyskać wybrany przycisk radiowy toggleGroup
w moim kontrolerze, czy muszę ponownie ustawić wszystkie przyciski radiowe jako pola w kontrolerze lub po prostu obiekt toggleGroup
dostanie mi wybrany przycisk radiowy (tekst tylko przycisk radiowy, a nie obiekt przycisku).Jak uzyskać wybrany przycisk opcji z ToggleGroup
Odpowiedz
Załóżmy, że masz grupę przełączającą i trzy przyciski opcji należące do tej grupy.
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);
Po wybraniu przycisku radiowego z tej grupy przełączania następujące changed(...)
metoda zostanie wywołana.
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
}
}
});
To nigdy nie zostało udzielone prawidłowo lub dokładnie, więc pomyślałem, że opublikuję rozwiązanie, które otrzymałem.
Po utworzeniu przycisków opcji w SceneBuilder
, należy również użyć SceneBuilder
, aby przypisać je do grupy. Sposób, w jaki uzyskujesz dostęp do tej grupy za pośrednictwem kontrolera, polega na utworzeniu w kontrolerze zmiennej typu ToggleGroup
i nadaniu jej dokładnie tej samej nazwy, którą utworzyłeś w SceneBuilder
. Wtedy możesz go użyć. Oto pseudokod przykładem jak to zrobiłem:
// 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
}
}
Chociaż tekst wrócił z posesji getUserData
jest długa. Oto sposób, aby uzyskać tylko nazwę przycisku 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());
}
});
nadzieję, że pomoże ktoś w dół drogi ...
@FXML
ToggleGroup right; //I called it right in SceneBuilder.
później gdzieś w metodzie.
RadioButton selectedRadioButton = (RadioButton) right.getSelectedToggle();
String toogleGroupValue = selectedRadioButton.getText();
Szybkie i proste! – marw
- 1. Jak uzyskać wybrany identyfikator opcji?
- 2. Jak uzyskać wybrany identyfikator opcji z Javascriptem, a nie JQuery
- 3. Pobierz wybrany przycisk opcji poza listą w ASP .NET
- 4. Jak wykryć, czy użytkownik został wybrany z opcji createChooser?
- 5. Pobierz wybrany przycisk radiowy w grupie (WPF)
- 6. Jak uzyskać wybrany przedmiot z ListView?
- 7. Zachowaj wybrany przycisk na Androidzie
- 8. Dodaj atrybut "wybrany" przy użyciu wartości opcji
- 9. Tylko jeden przycisk radiowy wybrany na raz
- 10. Jak zrobić przycisk opcji "Inne - proszę podać?"
- 11. Bind ToggleGroup dwukierunkowo w JavaFX
- 12. Jak uzyskać etykietę opcji select z jQuery?
- 13. JQuery: Jak uzyskać wybraną wartość przycisku opcji?
- 14. Sprawdź pierwszy przycisk opcji JQuery
- 15. Jak mogę uzyskać wybrany kod w Eclipse?
- 16. Jak uzyskać wybrany indeks listitem w Qt
- 17. Jak uzyskać, który fragment został wybrany?
- 18. Jak uzyskać wybrany tekst w WebView Android
- 19. Wybrany projekt z Solution Explorer
- 20. Jak uzyskać wybrany element NSOutlineView bez korzystania z NSTreeController?
- 21. Jak uzyskać wybrany tekst z webView w javaFX
- 22. Sprawdź, czy przycisk opcji jest zaznaczone jQuery
- 23. JQuery - znajdź przycisk opcji według wartości
- 24. Uzyskaj wybrany tekst opcji za pomocą polecenia js?
- 25. Jak uzyskać wartość opcji wybranego elementu
- 26. Jquery uzyskać identyfikator przycisku opcji testując wartość
- 27. Angular2, przycisk wyłączania w przypadku braku wyboru wybrany
- 28. ASP.Net RadioButtonList: jQuery uzyskać listitem wybrany
- 29. Jak dodać pole wyboru/przycisk opcji do QTableWidget
- 30. Jak korzystać z opcji SyndicationFeed?
Pytałem, czy jestem ponownie. aby ponownie ustawić 3 przyciski RadioButton w kontrolerze (po wykonaniu ich w FXML), lub mogę zrobić tylko obiekt ToggleGroup i uzyskać dostęp do wybranego przycisku. –
@Rounaq_intel, spróbuj po prostu dodać grupę kontrolną do kontrolera i dodać detektor w powyższej odpowiedzi. –
Dzięki, właśnie tego szukałem. – Kefirchiks