JavaFX | ChoiceBox

ChoiceBox es parte del paquete JavaFX. ChoiceBox muestra un conjunto de elementos y permite al usuario seleccionar una sola opción y mostrará el elemento actualmente seleccionado en la parte superior. ChoiceBox por defecto no tiene ningún elemento seleccionado a menos que se seleccione lo contrario. Uno puede especificar los elementos y luego el elemento seleccionado, o puede especificar el elemento seleccionado y luego los elementos. Los constructores de la clase ChoiceBox son :

  1. ChoiceBox() : Crea un nuevo ChoiceBox vacío.
  2. ChoiceBox(ObservableList items) : Crea un nuevo ChoiceBox con el conjunto dado de elementos.

Métodos comúnmente utilizados :

método explicación
getItems() Obtiene el valor de los elementos de propiedad.
obtenerValor() Obtiene el valor del valor de la propiedad.
ocultar() Cierra la lista de opciones.
setItems (valor de lista observable) Establece el valor de los elementos de propiedad.
establecerValor(valor T) Establece el valor del valor de la propiedad.
mostrar() Abre la lista de opciones.

El siguiente programa ilustra el uso de ChoiceBox:

  1. Programa para crear un ChoiceBox y agregarle elementos : este programa crea un ChoiceBox llamado c y le agrega una lista de strings usando (ChoiceBox(FXCollections.observableArrayList(string_array))). Agregaríamos la opción y una etiqueta al mosaico (función getChildren().add()). Luego crearemos un escenario (contenedor) y agregaremos el mosaico a la escena y agregaremos la escena al escenario. Luego muestre el escenario usando la función show(). 

Java

// Java  Program to create a ChoiceBox and add items 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.EventHandler;
import javafx.collections.*;
import javafx.stage.Stage;
public class Choice_1 extends Application {
 
    // launch the application
    public void start(Stage s)
    {
        // set title for the stage
        s.setTitle("creating ChoiceBox");
 
        // create a button
        Button b = new Button("show");
 
        // create a tile pane
        TilePane r = new TilePane();
 
        // create a label
        Label l = new Label("This is a choice box");
 
        // string array
        String st[] = { "Arnab", "Andrew", "Ankit", "None" };
 
        // create a choiceBox
        ChoiceBox c = new ChoiceBox(FXCollections.observableArrayList(st));
 
        // add ChoiceBox
        r.getChildren().add(l);
        r.getChildren().add(c);
 
        // 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);
    }
}
  1. Salida :
  2. Programa para crear un ChoiceBox y agregarle un oyente : este programa crea un ChoiceBox llamado c y le agrega una lista de strings usando (ChoiceBox(FXCollections.observableArrayList(string_array))). Agregaríamos un oyente de cambios para detectar cuándo el usuario selecciona un elemento de su elección (agregaremos el oyente usando la función addListener()). El detector de cambios tiene una función (vacío público cambiado (ObservableValue ov, Valor numérico, Número nuevo_valor)) que se invoca cuando se cambia la selección de elección. Agregaríamos la opción y una etiqueta al mosaico (función getChildren().add()). Luego crearemos un escenario (contenedor) y agregaremos el mosaico a la escena y agregaremos la escena al escenario. Finalmente, muestra el escenario usando la función show(). 

Java

// Java  Program to create a ChoiceBox and add 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.EventHandler;
import javafx.collections.*;
import javafx.beans.value.*;
import javafx.stage.Stage;
public class Choice_2 extends Application {
 
    // launch the application
    public void start(Stage s)
    {
        // set title for the stage
        s.setTitle("creating ChoiceBox");
 
        // create a button
        Button b = new Button("show");
 
        // create a tile pane
        TilePane r = new TilePane();
 
        // create a label
        Label l = new Label("This is a choice box");
        Label l1 = new Label("nothing selected");
 
        // string array
        String st[] = { "Arnab", "Andrew", "Ankit", "None" };
 
        // create a choiceBox
        ChoiceBox c = new ChoiceBox(FXCollections.observableArrayList(st));
 
        // add a listener
        c.getSelectionModel().selectedIndexProperty().addListener(new ChangeListener<Number>() {
 
            // if the item of the list is changed
            public void changed(ObservableValue ov, Number value, Number new_value)
            {
 
                // set the text for the label to the selected item
                l1.setText(st[new_value.intValue()] + " selected");
            }
        });
 
        // add ChoiceBox
        r.getChildren().add(l);
        r.getChildren().add(c);
        r.getChildren().add(l1);
 
        // 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);
    }
}
  1. Salida :

Nota: Es posible que los programas anteriores no se ejecuten en un IDE en línea; use un compilador fuera de línea. Referencia: https://docs.oracle.com/javase/8/javafx/api/javafx/scene/control/ChoiceBox.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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *