JavaFX | ComboBox con ejemplos

ComboBox es parte de la biblioteca JavaFX. JavaFX ComboBox es una implementación de ComboBox simple que muestra una lista de elementos de los que el usuario puede seleccionar como máximo un elemento, hereda la clase ComboBoxBase.

Constructores de ComboBox: 

  1. ComboBox() : crea un cuadro combinado vacío predeterminado
  2. ComboBox (ObservableList i) : crea un cuadro combinado con los elementos dados

Métodos comúnmente utilizados:  

Método Explicación
getEditor() Este método obtiene el valor del editor de propiedades.
getItems() Este método devuelve los elementos del cuadro combinado.
getVisibleRowCount() Este método devuelve el valor de la propiedad visibleRowCount.
setItems(ListaObservable v) Este método establece los elementos del cuadro combinado
setVisibleRowCount(int v) Este método establece el valor de la propiedad VisibleRowCount

Los siguientes programas ilustran la clase ComboBox de JavaFX:

  • Programa para crear un Combo Box y agregarle elementos : Este programa crea un ComboBox llamado combo_box y le agrega una lista de strings usando ChoiceBox (FXCollections.observableArrayList (week_days)). Agregaríamos el cuadro combinado y una etiqueta (descripción) al mosaico (función getChildren().add()). Crearemos un escenario (contenedor) y agregaremos el mosaico a la escena y agregaremos la escena al escenario. Mostraríamos el escenario usando la función show().

Java

// Java Program to create a combo Box 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;
import javafx.scene.text.Text.*;
import javafx.scene.paint.*;
import javafx.scene.text.*;
public class combo_box_1 extends Application {
 
    // Launch the application
    public void start(Stage stage)
    {
        // Set title for the stage
        stage.setTitle("creating combo box ");
 
        // Create a tile pane
        TilePane r = new TilePane();
 
        // Create a label
        Label description_label =
                     new Label("This is a combo box example ");
 
        // Weekdays
        String week_days[] =
                   { "Monday", "Tuesday", "Wednesday",
                                    "Thursday", "Friday" };
 
        // Create a combo box
        ComboBox combo_box =
                     new ComboBox(FXCollections
                                 .observableArrayList(week_days));
 
        // Create a tile pane
        TilePane tile_pane = new TilePane(combo_box);
 
        // Create a scene
        Scene scene = new Scene(tile_pane, 200, 200);
 
        // Set the scene
        stage.setScene(scene);
 
        stage.show();
    }
 
    public static void main(String args[])
    {
        // Launch the application
        launch(args);
    }
}

Producción: 

  • Programa para crear un cuadro combinado y agregarle un controlador de eventos : este programa crea un cuadro combinado llamado combo_box y le agrega una lista de strings usando (ChoiceBox(FXCollections.observableArrayList(week_days))). Agregaríamos el cuadro combinado y una etiqueta (descripción) al mosaico (función getChildren().add()). Crearemos un escenario (contenedor) y agregaremos el mosaico a la escena y agregaremos la escena al escenario. Mostraríamos el escenario usando la función show(). Agregaríamos un evento de controlador de eventos para manejar los eventos de combo_box que cambiará el texto de la etiqueta seleccionada al elemento seleccionado. También agregaremos la etiqueta seleccionada al panel de mosaico.

Java

// Java program to create a combo box and add event handler 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;
import javafx.scene.text.Text.*;
import javafx.scene.paint.*;
import javafx.scene.text.*;
public class combo_box_2 extends Application {
 
    // Launch the application
    public void start(Stage stage)
    {
        // Set title for the stage
        stage.setTitle("creating combo box ");
 
        // Create a tile pane
        TilePane r = new TilePane();
 
        // Create a label
        Label description_label =
                         new Label("This is a combo box example ");
 
        // Weekdays
        String week_days[] =
                   { "Monday", "Tuesday", "Wednesday",
                                   "Thursday", "Friday" };
 
        // Create a combo box
        ComboBox combo_box =
                    new ComboBox(FXCollections
                              .observableArrayList(week_days));
 
        // Label to display the selected menuitem
        Label selected = new Label("default item selected");
 
        // Create action event
        EventHandler<ActionEvent> event =
                  new EventHandler<ActionEvent>() {
            public void handle(ActionEvent e)
            {
                selected.setText(combo_box.getValue() + " selected");
            }
        };
 
        // Set on action
        combo_box.setOnAction(event);
 
        // Create a tile pane
        TilePane tile_pane = new TilePane(combo_box, selected);
 
        // Create a scene
        Scene scene = new Scene(tile_pane, 200, 200);
 
        // Set the scene
        stage.setScene(scene);
 
        stage.show();
    }
 
    public static void main(String args[])
    {
        // Launch the application
        launch(args);
    }
}

Producción: 

Nota: Es posible que los programas anteriores no se ejecuten en un IDE en línea; use un convertidor fuera de línea.

Referencia: https://docs.oracle.com/javase/8/javafx/api/javafx/scene/control/ComboBox.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 *