Los botones de radio son parte del paquete JavaFx. Los botones de radio se utilizan principalmente para crear una serie de elementos donde solo se puede seleccionar uno. Cuando se presiona y suelta un botón de opción, se envía un evento de acción, este evento de acción se puede manejar mediante un controlador de eventos.
Se puede agregar RadioButton a Toggle Group para que el usuario no pueda seleccionar más de un elemento. De forma predeterminada, un botón de opción no forma parte de ningún grupo de alternancia. El elemento seleccionado de un grupo de alternancia se puede encontrar mediante la función getSelectedToggle().
Constructores de la clase RadioButton :
- RadioButton() : crea un botón de radio con una string vacía para su etiqueta.
- RadioButton(String t) :Crea un botón de radio con el texto especificado como su etiqueta
Métodos comúnmente utilizados :
método | explicación |
---|---|
obtenerTexto() | devuelve la etiqueta de texto para el botón de opción |
esSeleccionado() | devuelve si el botón de radio está seleccionado o no |
setSelected(booleano b) | establece si el botón de opción está seleccionado o no |
setToggleGroup(ToggleGroup tg) | establece el grupo de alternancia para el botón de opción |
fuego() | Alterna el estado del botón de radio si y solo si el botón de radio aún no se ha seleccionado o no es parte de un ToggleGroup. |
Los siguientes programas ilustran la clase RadioButton:
- Programa para crear RadioButton y agregarlo al escenario : Este programa crea un RadioButton indicado por el nombre r1, r2, r3. El botón de radio se creará dentro de una escena, que a su vez se alojará dentro de una etapa (que es el contenedor JavaFX de nivel superior). La función setTitle() se utiliza para proporcionar título al escenario. Luego se crea un mosaico en el que se llama al método addChildren() para adjuntar el botón de opción dentro de la escena, junto con la resolución especificada por (200, 200) en el código. Finalmente, se llama al método show() para mostrar los resultados finales.
// Java program to create RadioButton and add it to the stage
import
javafx.application.Application;
import
javafx.scene.Scene;
import
javafx.scene.control.*;
import
javafx.scene.layout.*;
import
javafx.event.ActionEvent;
import
javafx.event.EventHandler;
import
javafx.collections.*;
import
javafx.stage.Stage;
import
javafx.scene.text.Text.*;
import
javafx.scene.text.*;
public
class
radiobutton
extends
Application {
// launch the application
public
void
start(Stage s)
{
// set title for the stage
s.setTitle(
"creating RadioButton"
);
// create a tile pane
TilePane r =
new
TilePane();
// create a label
Label l =
new
Label(
"This is a Radiobutton example "
);
// create radiobuttons
RadioButton r1 =
new
RadioButton(
"male"
);
RadioButton r2 =
new
RadioButton(
"female"
);
RadioButton r3 =
new
RadioButton(
"others"
);
// add label
r.getChildren().add(l);
r.getChildren().add(r1);
r.getChildren().add(r2);
r.getChildren().add(r3);
// create a scene
Scene sc =
new
Scene(r,
200
,
200
);
// set the scene
s.setScene(sc);
s.show();
}
public
static
void
main(String args[])
{
// launch the application
launch(args);
}
}
Producción:
- Programa para crear RadioButton y agregarlo a un ToggleGroup : Este programa crea un RadioButton indicado por el nombre r1, r2, r3. El botón de radio se creará dentro de una escena, que a su vez se alojará dentro de una etapa (que es el contenedor JavaFX de nivel superior). La función setTitle() se utiliza para proporcionar título al escenario. Se crea un grupo de alternancia y los botones de radio se agregan al grupo de alternancia mediante la función setToggleGroup(). Luego se crea un mosaico en el que se llama al método addChildren() para adjuntar el botón de opción dentro de la escena, junto con la resolución especificada por (200, 200) en el código. Finalmente, se llama al método show() para mostrar los resultados finales.
// Java Program to create RadioButton and add it to a ToggleGroup
import
javafx.application.Application;
import
javafx.scene.Scene;
import
javafx.scene.control.*;
import
javafx.scene.layout.*;
import
javafx.event.ActionEvent;
import
javafx.event.EventHandler;
import
javafx.collections.*;
import
javafx.stage.Stage;
import
javafx.scene.text.Text.*;
import
javafx.scene.text.*;
public
class
radiobutton_1
extends
Application {
// labels
Label l;
// launch the application
public
void
start(Stage s)
{
// set title for the stage
s.setTitle(
"creating RadioButton"
);
// create a tile pane
TilePane r =
new
TilePane();
// create a label
l =
new
Label(
"This is a Radiobutton example "
);
// create a toggle group
ToggleGroup tg =
new
ToggleGroup();
// create radiobuttons
RadioButton r1 =
new
RadioButton(
"male"
);
RadioButton r2 =
new
RadioButton(
"female"
);
RadioButton r3 =
new
RadioButton(
"others"
);
// add radiobuttons to toggle group
r1.setToggleGroup(tg);
r2.setToggleGroup(tg);
r3.setToggleGroup(tg);
// add label
r.getChildren().add(l);
r.getChildren().add(r1);
r.getChildren().add(r2);
r.getChildren().add(r3);
// create a scene
Scene sc =
new
Scene(r,
200
,
200
);
// set the scene
s.setScene(sc);
s.show();
}
public
static
void
main(String args[])
{
// launch the application
launch(args);
}
}
Producción:
- Programa para crear RadioButton, agregarlo a un ToggleGroup y agregarle un oyente: Este programa crea un RadioButton indicado por el nombre r1, r2, r3. El botón de radio se creará dentro de una escena, que a su vez se alojará dentro de una etapa (que es el contenedor JavaFX de nivel superior). La función setTitle() se utiliza para proporcionar título al escenario. Se crea un grupo de alternancia y los botones de radio se agregan al grupo de alternancia mediante la función setToggleGroup(). Se crea una etiqueta l2 para mostrar qué botón de radio está seleccionado. Se agrega un detector de cambios para manejar cualquier cambio en la selección de los botones de radio (usando la función addListener()). El cambio en la selección se representa cambiando el texto de la etiqueta l2. Luego se crea un mosaico en el que se llama al método addChildren() para adjuntar el botón de opción dentro de la escena, junto con la resolución especificada por (200, 200) en el código. Finalmente,
// Java Program to create RadioButton, add it to a ToggleGroup and add a listener to it
import
javafx.application.Application;
import
javafx.scene.Scene;
import
javafx.scene.control.*;
import
javafx.scene.layout.*;
import
javafx.event.ActionEvent;
import
javafx.event.*;
import
javafx.collections.*;
import
javafx.stage.Stage;
import
javafx.scene.text.Text.*;
import
javafx.scene.text.*;
import
javafx.beans.value.*;
public
class
radiobutton_2
extends
Application {
// launch the application
public
void
start(Stage s)
{
// set title for the stage
s.setTitle(
"creating RadioButton"
);
// create a tile pane
TilePane r =
new
TilePane();
// create a label
Label l =
new
Label(
"This is a Radiobutton example "
);
Label l2 =
new
Label(
"nothing selected"
);
// create a toggle group
ToggleGroup tg =
new
ToggleGroup();
// create radiobuttons
RadioButton r1 =
new
RadioButton(
"male"
);
RadioButton r2 =
new
RadioButton(
"female"
);
RadioButton r3 =
new
RadioButton(
"others"
);
// add radiobuttons to toggle group
r1.setToggleGroup(tg);
r2.setToggleGroup(tg);
r3.setToggleGroup(tg);
// add label
r.getChildren().add(l);
r.getChildren().add(r1);
r.getChildren().add(r2);
r.getChildren().add(r3);
r.getChildren().add(l2);
// create a scene
Scene sc =
new
Scene(r,
200
,
200
);
// add a change listener
tg.selectedToggleProperty().addListener(
new
ChangeListener<Toggle>()
{
public
void
changed(ObservableValue<?
extends
Toggle> ob,
Toggle o, Toggle n)
{
RadioButton rb = (RadioButton)tg.getSelectedToggle();
if
(rb !=
null
) {
String s = rb.getText();
// change the label
l2.setText(s +
" selected"
);
}
}
});
// set the scene
s.setScene(sc);
s.show();
}
public
static
void
main(String args[])
{
// launch the application
launch(args);
}
}
Producción:
Nota: Los programas anteriores no se ejecutarán en un IDE en línea. Utilice un compilador fuera de línea
Referencia: https://docs.oracle.com/javase/8/javafx/api/javafx/scene/control/RadioButton.html
Publicación traducida automáticamente
Artículo escrito por andrew1234 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA