los
ChoiceBoxLa clase se utiliza para crear un control que presenta al usuario algunas opciones para elegir de una lista desplegable. El usuario solo puede elegir una de las opciones. Cuando la lista desplegable no se muestra, la opción seleccionada actualmente es la única visible. Es posible configurar el
ChoiceBoxoponerse a aceptar una opción nula como una opción válida.
import javafx.scene.control.ChoiceBox;
los
ChoiceBoxLa clase tiene dos constructores, uno para una lista vacía de elementos y otro con un conjunto dado de elementos:
// Crea un ChoiceBox vacío
ChoiceBox elecciones = new ChoiceBox ();
// Crea un ChoiceBox usando una colección de listas observables
ChoiceBox cboices = new ChoiceBox (FXCollections.observableArrayList ("Apple", "Banana", "Orange", "Peach", "Pear", "Strawberry"));
Si elige crear un vacío
ChoiceBoxlos elementos se pueden agregar más tarde usando el
setItemsmétodo:
options.setItems (FXCollections.observableArrayList ("Apple", "Banana", "Orange", "Peach", "Pear", "Strawberry"));
Y, si desea averiguar qué elementos hay en un
ChoiceBoxpuedes usar el
getItemsmétodo:
Lista de opciones = options.getItems ();
Para elegir una opción para seleccionarla actualmente, use el
valor ajustadométodo y proporcionarle una de las opciones:
options.setValue ("Primero");
Para obtener el valor de la opción seleccionada actualmente, use el correspondiente
getValuemétodo y asígnelo a una cadena:
Opción de cadena = choices.getValue (). ToString ();
Para escuchar eventos para un
ChoiceBoxobjeto, el
SelecciónModeloes usado los
ChoiceBoxusa el
SingleSelectionModelclase que solo permite elegir una opción a la vez. los
selectedIndexPropertyEl método nos permite agregar un
ChangeListener. Esto significa que siempre que la opción seleccionada cambie a otra opción, se producirá el evento de cambio. Como puede ver en el siguiente código, se escucha un cambio y cuando ocurre la opción seleccionada previamente y la opción recién seleccionada se puede determinar:
Lista final opciones = options.getItems ();
options.getSelectionModel (). selectedIndexProperty (). addListener (new ChangeListener ()
@Override public void changed (ObservableValue ov, Number oldSelected, Number newSelected)
System.out.println ("Antigua opción seleccionada:" + options.get (oldSelected.intValue ()));
System.out.println ("Nueva opción seleccionada:" + options.get (newSelected.intValue ()));
);
También es posible mostrar u ocultar la lista de opciones sin que el usuario tenga que hacer clic en el
ChoiceBoxobjeto mediante el uso de
espectáculoy
escondermétodos. En el siguiente código, se usa un objeto Button para llamar al método show de un
ChoiceBoxobjetar cuando el
Botónse hace clic:
// Use un panel de pila para un diseño simple de los controles
StackPane root = new StackPane ();
// Crear botón para mostrar las opciones en ChoiceBox
Botón showOptionButton = botón nuevo ("Mostrar opciones");
root.getChildren (). add (showOptionButton);
root.setAlignment (showOptionButton, Pos.TOP_CENTER);
// Crea el ChoiceBox con algunas opciones
opciones finales de ChoiceBox = nueva ChoiceBox (FXCollections.observableArrayList ("Apple", "Banana", "Orange", "Peach", "Pear", "Strawberry"));
root.getChildren (). add (opciones);
// Usa el ActionEvent para llamar al método show ShowBox
showOptionButton.setOnAction (new EventHandler ()
@Override public anular handle (ActionEvent e)
elecciones.show ();
);
// Establecer la escena y poner el escenario en movimiento ...
Escena de escena = nueva escena (raíz, 300, 250);
primaryStage.setScene (escena);
primaryStage.show ();
Para obtener información sobre otros controles JavaFX, eche un vistazo a los controles de interfaz de usuario JavaFX.