javafx
Przycisk radiowy
Szukaj…
Tworzenie przycisków radiowych
Przyciski opcji pozwalają użytkownikowi wybrać jeden z podanych elementów. Istnieją dwa sposoby zadeklarowania RadioButton
z tekstem oprócz niego. Albo używając domyślnego konstruktora RadioButton()
i ustawiając tekst za pomocą metody setText(String)
lub używając innego konstruktora RadioButton(String)
.
RadioButton radioButton1 = new RadioButton();
radioButton1.setText("Select me!");
RadioButton radioButton2= new RadioButton("Or me!");
Ponieważ RadioButton
jest rozszerzeniem Labeled
w RadioButton
można również określić Image
. Po utworzeniu RadioButton
pomocą jednego z konstruktorów wystarczy dodać Image
pomocą metody setGraphic(ImageView)
, jak tutaj:
Image image = new Image("ok.jpg");
RadioButton radioButton = new RadioButton("Agree");
radioButton.setGraphic(new ImageView(image));
Używaj grup na przyciskach radiowych
ToggleGroup
służy do zarządzania przyciskami RadioButton
dzięki czemu można wybrać tylko jeden w każdej grupie za każdym razem.
Utwórz prostą ToggleGroup
następujący sposób:
ToggleGroup group = new ToggleGroup();
Po utworzeniu Togglegroup
można go przypisać do RadioButton
za pomocą setToggleGroup(ToggleGroup)
. Użyj setSelected(Boolean)
aby wstępnie wybrać jeden z przycisków RadioButton
.
RadioButton radioButton1 = new RadioButton("stackoverlow is awesome! :)");
radioButton1.setToggleGroup(group);
radioButton1.setSelected(true);
RadioButton radioButton2 = new RadioButton("stackoverflow is ok :|");
radioButton2.setToggleGroup(group);
RadioButton radioButton3 = new RadioButton("stackoverflow is useless :(");
radioButton3.setToggleGroup(group);
Wydarzenia dla przycisków radiowych
Zazwyczaj po wybraniu jednego z przycisków RadioButton
w ToggleGroup
aplikacja wykonuje akcję. Poniżej znajduje się przykład, w którym drukowane są dane użytkownika wybranego RadioButton
który został ustawiony za pomocą setUserData(Object)
.
radioButton1.setUserData("awesome")
radioButton2.setUserData("ok");
radioButton3.setUserData("useless");
ToggleGroup group = new ToggleGroup();
group.selectedToggleProperty().addListener((obserableValue, old_toggle, new_toggle) -> {
if (group.getSelectedToggle() != null) {
System.out.println("You think that stackoverflow is " + group.getSelectedToggle().getUserData().toString());
}
});
Żądanie skupienia się na przyciskach radiowych
Powiedzmy, że drugi z trzech RadioButton
jest wstępnie wybrany za pomocą setSelected(Boolean)
, domyślnie fokus jest nadal ustawiony na pierwszym RadioButton
. Aby to zmienić, użyj metody requestFocus()
.
radioButton2.setSelected(true);
radioButton2.requestFocus();