Saltar la navegación

Botones de activación

Los botones de activación son una especialización de un botón y tienen dos estados: activado o no activado. Se pueden combinar en grupos de forma que sólo uno de ellos puede estar activado simultáneamente o se pueden utilizar sin agrupar. El usuario interacciona con ellos pulsando sobre los mismos y van cambiando de estado.

Al igual que los botones pueden contener texto, imágenes o ambos y se hace de la misma forma que para los botones.

Los botones de activación pertenecen a la clase javafx.scene.control.ToggleButton. Si quisiéramos agruparlos, crearíamos un objeto de la clase javafx.scene.control.ToggleGroup y para especificar que un botón de activación pertenece a un grupo dado utilizamos el método setToggleGroup del botón de activación, pasándole el grupo al que pertenecen.

En la siguiente imagen se muestran tres botones de activación que no están agrupados.

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

package javafx.controles;

import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.control.ToggleButton;
import javafx.scene.layout.HBox;
import javafx.scene.layout.VBox;
import javafx.scene.text.Font;
import javafx.stage.Stage;

public class BotonesActivacion 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));
			
			ToggleButton tbNavegador = new ToggleButton("Navegador");
			ToggleButton tbManosLibres = new ToggleButton("Manos libres");
			ToggleButton tbLunas = new ToggleButton("Lunas tintadas");
			
			HBox panelBotones = new HBox();
			panelBotones.setSpacing(10);
			panelBotones.getChildren().addAll(tbNavegador, tbManosLibres, tbLunas);
			
			raiz.getChildren().addAll(lbElige, panelBotones);
			
			Scene escena = new Scene(raiz, 420, 150);
			escenarioPrincipal.setTitle("Botones de activación");
			escenarioPrincipal.setScene(escena);
			escenarioPrincipal.show();
		} catch(Exception e) {
			e.printStackTrace();
		}
	}

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


}