javafx
Переключатель
Поиск…
Создание кнопок радиосвязи
Кнопки «Радио» позволяют вам выбрать один элемент из указанных. Существует два способа объявить RadioButton
с текстом, кроме него. Либо используя конструктор по умолчанию RadioButton()
установив текст с помощью метода setText(String)
или используя другой конструктор RadioButton(String)
.
RadioButton radioButton1 = new RadioButton();
radioButton1.setText("Select me!");
RadioButton radioButton2= new RadioButton("Or me!");
Поскольку RadioButton
является расширением Labeled
также может быть Image
указанное в RadioButton
. После создания RadioButton
с одним из конструкторов просто добавьте Image
с помощью setGraphic(ImageView)
как здесь:
Image image = new Image("ok.jpg");
RadioButton radioButton = new RadioButton("Agree");
radioButton.setGraphic(new ImageView(image));
Использовать группы на радио-кнопках
ToggleGroup
используется для управления RadioButton
s, так что каждый раз в каждой группе может быть выбран один.
Создайте простую ToggleGroup
как ToggleGroup
ниже:
ToggleGroup group = new ToggleGroup();
После создания Togglegroup
его можно назначить на RadioButton
s, используя setToggleGroup(ToggleGroup)
. Используйте setSelected(Boolean)
для предварительного выбора одного из 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);
События для радиоустройств
Как правило, когда один из RadioButton
s в ToggleGroup
выбран, приложение выполняет действие. Ниже приведен пример, который печатает пользовательские данные выбранного RadioButton
который был установлен с помощью 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());
}
});
Запрос фокуса для кнопок радио
Предположим, что второй RadioButton
из трех предварительно выбран с помощью setSelected(Boolean)
, фокус по-прежнему находится на первом RadioButton
по умолчанию. Чтобы изменить это, используйте метод requestFocus()
.
radioButton2.setSelected(true);
radioButton2.requestFocus();