javafx
Boton de radio
Buscar..
Creando botones de radio
Los botones de radio le permiten al usuario elegir un elemento de los dados. Hay dos formas de declarar un RadioButton
con un texto aparte. Usando el constructor predeterminado RadioButton()
y configurando el texto con el método setText(String)
o usando el otro constructor RadioButton(String)
.
RadioButton radioButton1 = new RadioButton();
radioButton1.setText("Select me!");
RadioButton radioButton2= new RadioButton("Or me!");
Como RadioButton
es una extensión de Labeled
también puede haber una Image
especificada para RadioButton
. Después de crear el RadioButton
con uno de los constructores, simplemente agregue la Image
con el setGraphic(ImageView)
como aquí:
Image image = new Image("ok.jpg");
RadioButton radioButton = new RadioButton("Agree");
radioButton.setGraphic(new ImageView(image));
Usar grupos en los botones de radio
A ToggleGroup
se utiliza para gestionar la RadioButton
s de modo que sólo uno de cada grupo se pueden seleccionar en cada momento.
Crea un ToggleGroup
simple como el siguiente:
ToggleGroup group = new ToggleGroup();
Después de crear un Togglegroup
se puede asignar a RadioButton
s usando setToggleGroup(ToggleGroup)
. Use setSelected(Boolean)
para preseleccionar uno de los 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);
Eventos para botones de radio
Normalmente, cuando se selecciona uno de los RadioButton
s en un ToggleGroup
la aplicación realiza una acción. A continuación se muestra un ejemplo que imprime los datos de usuario del RadioButton
seleccionado que se ha configurado con 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());
}
});
Solicitando enfoque para botones de radio
Digamos que el segundo RadioButton
cada tres está preseleccionado con setSelected(Boolean)
, el enfoque sigue siendo el primer RadioButton
por defecto. Para cambiar esto use el método requestFocus()
.
radioButton2.setSelected(true);
radioButton2.requestFocus();