JCheckBox en Java: Guía Completa con Ejemplos

JCheckBox en Java: Guía Completa con Ejemplos

Las JCheckBox son elementos de interfaz de usuario esenciales en Java para la creación de aplicaciones que permitan a los usuarios seleccionar o deseleccionar opciones. Se utilizan ampliamente en todo tipo de aplicaciones, desde simples menús de configuración hasta complejas interfaces de usuario. En esta guía, exploraremos en profundidad la clase JCheckBox, cubriendo su funcionamiento, constructores, métodos, ejemplos de uso y casos prácticos.

La JCheckBox es una clase que extiende la clase JToggleButton, lo que significa que hereda la funcionalidad de un botón que se puede alternar entre dos estados: seleccionado o deseleccionado. La principal diferencia entre un JToggleButton y una JCheckBox reside en la representación visual: la JCheckBox muestra una casilla de verificación que se marca o desmarca al cambiar su estado.

Constructores y Métodos

La clase JCheckBox ofrece diversos constructores para crear casillas de verificación. Los más utilizados son:

  • JCheckBox(): Crea una casilla de verificación sin texto ni icono asociado.
  • JCheckBox(String text): Crea una casilla de verificación con el texto especificado.
  • JCheckBox(Icon icon): Crea una casilla de verificación con el icono especificado.
  • JCheckBox(String text, boolean selected): Crea una casilla de verificación con el texto especificado y un estado inicial seleccionado o deseleccionado.
  • JCheckBox(Icon icon, boolean selected): Crea una casilla de verificación con el icono especificado y un estado inicial seleccionado o deseleccionado.

Además de los constructores, la clase JCheckBox proporciona una serie de métodos para manipular su estado, texto, icono, selección y comportamiento:

  • isSelected(): Devuelve true si la casilla está seleccionada, false en caso contrario.
  • setSelected(boolean selected): Establece la casilla como seleccionada o deseleccionada.
  • getText(): Devuelve el texto asociado a la casilla.
  • setText(String text): Establece el texto asociado a la casilla.
  • getIcon(): Devuelve el icono asociado a la casilla.
  • setIcon(Icon icon): Establece el icono asociado a la casilla.
  • addActionListener(ActionListener listener): Agrega un listener que se activará cuando se cambie el estado de la casilla.
LEER:  C++ para Principiantes: Una Guía Completa a la Programación con C++

Ejemplo Básico de Uso

«`java
import javax.swing.*;

public class JCheckBoxEjemplo {

public static void main(String[] args) {
    JFrame frame = new JFrame("Ejemplo JCheckBox");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setSize(300, 150);

    JPanel panel = new JPanel();

    // Crear una casilla de verificación con texto
    JCheckBox checkBox = new JCheckBox("Activar opción");
    panel.add(checkBox);

    frame.add(panel);
    frame.setVisible(true);
}

}
«`

Este ejemplo crea una ventana simple con una JCheckBox que se etiqueta con el texto «Activar opción». La casilla se puede seleccionar o deseleccionar haciendo clic en ella.

Ejemplo con Listener

«`java
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class JCheckBoxEjemploListener {

public static void main(String[] args) {
    JFrame frame = new JFrame("Ejemplo JCheckBox Listener");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setSize(300, 150);

    JPanel panel = new JPanel();

    // Crear una casilla de verificación con texto
    JCheckBox checkBox = new JCheckBox("Activar opción");

    // Agregar un listener a la casilla
    checkBox.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            if (checkBox.isSelected()) {
                System.out.println("Opción activada");
            } else {
                System.out.println("Opción desactivada");
            }
        }
    });

    panel.add(checkBox);

    frame.add(panel);
    frame.setVisible(true);
}

}
«`

Este ejemplo agrega un listener a la JCheckBox que imprime un mensaje en la consola cuando se cambia el estado de la casilla.

Ejemplo de Pedido de Comida

«`java
import javax.swing.;
import java.awt.
;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class JCheckBoxEjemploComida {

public static void main(String[] args) {
    JFrame frame = new JFrame("Pedido de Comida");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setSize(400, 250);

    JPanel panel = new JPanel(new GridLayout(4, 2));

    // Crear casillas de verificación para los ingredientes
    JCheckBox pizza = new JCheckBox("Pizza");
    JCheckBox hamburguesa = new JCheckBox("Hamburguesa");
    JCheckBox papas = new JCheckBox("Papas fritas");
    JCheckBox bebida = new JCheckBox("Bebida");

    // Agregar las casillas al panel
    panel.add(pizza);
    panel.add(hamburguesa);
    panel.add(papas);
    panel.add(bebida);

    // Crear un label para mostrar el precio total
    JLabel precioLabel = new JLabel("Precio total: 0");
    panel.add(precioLabel);

    // Crear un botón para calcular el precio
    JButton calcularButton = new JButton("Calcular Precio");
    panel.add(calcularButton);

    // Agregar listener al botón para calcular el precio
    calcularButton.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            int precioTotal = 0;

            // Calcular el precio según las opciones seleccionadas
            if (pizza.isSelected()) {
                precioTotal += 10;
            }
            if (hamburguesa.isSelected()) {
                precioTotal += 8;
            }
            if (papas.isSelected()) {
                precioTotal += 3;
            }
            if (bebida.isSelected()) {
                precioTotal += 2;
            }

            // Actualizar el label con el precio total
            precioLabel.setText("Precio total: " + precioTotal);
        }
    });

    frame.add(panel);
    frame.setVisible(true);
}

}
«`

LEER:  CSS display: none vs visibility: hidden: La diferencia definitiva

Este ejemplo crea una interfaz de usuario para un sistema de pedido de comida. Se utilizan JCheckBox para permitir que el usuario seleccione los ingredientes que desea pedir. Al hacer clic en el botón «Calcular Precio», se calcula el precio total según las opciones seleccionadas y se actualiza el label correspondiente.

Conclusión

La clase JCheckBox es una herramienta esencial para crear interfaces de usuario interactivas en Java. Al comprender cómo utilizar sus constructores, métodos y listeners, se puede crear aplicaciones complejas y funcionales que permitan a los usuarios seleccionar opciones de forma intuitiva. Este ejemplo de pedido de comida ilustra cómo se pueden combinar las JCheckBox con otros componentes de Swing para crear interfaces de usuario dinámicas y atractivas.