Saltar la navegación

Cajas combinadas

Las cajas combinadas con muy similares a las cajas de elección, aunque algo más versátiles ya que permiten añadir una barra de desplazamiento si el contenido excede un límite dado y también permite editar los elementos que la componen.

Las cajas combinadas pertenecen a la clase javafx.scene.control.ComboBox.

Necesita tener asociado un modelo de una clase que implemente la interfaz javafx.collections.ObservableList que indicará las diferentes opciones a mostrar y que podremos asociar a la caja combinada mediante su método setItems.

La imagen muestra una caja combinada que contiene tres opciones pero que muestra sólo dos y una barra de desplazamiento ya que hemos fijado el número de filas a mostrar a 2 mediante el método setVisibleRowCount.

El código utilizado para crear esta interfaz es el siguiente:

package javafx.controles;

import javafx.application.Application;
import javafx.collections.FXCollections;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.ComboBox;
import javafx.scene.control.Label;
import javafx.scene.layout.VBox;
import javafx.scene.text.Font;
import javafx.stage.Stage;

public class CajasCombinadas extends Application {

	@Override
	public void start(Stage escenarioPrincipal) {
		try {
			VBox raiz = new VBox();
			raiz.setPadding(new Insets(40));
			raiz.setSpacing(10);
			
			Label lbElige = new Label("Elige los extras:");
			lbElige.setFont(Font.font(20));
			
			ComboBox<String> cbExtras = new ComboBox<>();
			cbExtras.setVisibleRowCount(2);
			cbExtras.setItems(FXCollections.observableArrayList("Navegador", "Manos libres", "Lunas tintadas"));
			
			raiz.getChildren().addAll(lbElige, cbExtras);
			
			Scene escena = new Scene(raiz, 350, 200);
			escenarioPrincipal.setTitle("Cajas combinadas");
			escenarioPrincipal.setScene(escena);
			escenarioPrincipal.show();
		} catch(Exception e) {
			e.printStackTrace();
		}
	}

	public static void main(String[] args) {
		launch(args);
	}

}