Swing y JFC (Java Foundation Classes)

La versi�n Swing soporta botones checkbox con la clase JCheckBox. Swing tambi�n soporta checkboxes en menus, utilizando la clase JCheckBoxMenuItem. Como JCheckBox y JCheckBoxMenuItem descienden de AbstractButton, los checkboxes de Swing tienen todas las caracter�sticas de un bot�n normal como se explic� en C�mo usar Buttons. Por ejemplo, podemos especificar im�genes para ser utilizadas en los checkboxes.

Los Checkboxes son similares a los botones de r�dio, pero su modelo de selecci�n es diferente, por convenci�n. Cualquier n�mero de checkboxes en un grupo -- ninguno, alguno o todos -- pueden ser seleccionados. Por otro lado, en un grupo de botones de r�dio, s�lo puede haber uno seleccionado.

Nota: En Swing 1.0.2, los botones ignoran sus mnem�nicos (teclas aceleradoras). Este bug se corrigi� en Swing 1.0.3.

Aqu� podemos ver una imagen de una aplicaci�n que utiliza cuatro checkboxes para personalizar una caricatura.

Intenta esto:
  1. Compila y ejecuta la aplicaci�n. El fichero fuente es CheckBoxDemo.java. Tambi�n necesitar�s los 16 ficheros de imagenes del directorio example-swing/images que empiezan con "geek".
  2. Pulsa el bot�n Chin o pulsa Alt-C.

    El checkbox Chin se desactiva, y la barbilla desaparecer� de la imagen. Los otros Checkboxes permanencen seleccionados. Esta aplicaci�n tiene un oyente de �tem que escucha todos los checkboxes. Cada vez que el oyente de �tem recibe un evento, la aplicaci�n carga una nueva imagen y refleja el estado actual de los checkboxes.

Un Checkbox genera un evento �tem y un evento action por cada pulsaci�n. Normalmente, solo escucharemos los eventos de �tem, ya que nos permiten determinar si el click selecciona o desactiva el checkbox. Abajo puedes ver el c�digo de CheckBoxDemo.java que crea los checkboxes del ejemplo anterior y reacciona ante las pulsaciones.

//In initialization code:
    chinButton = new JCheckBox("Chin");
    chinButton.setMnemonic('c'); 
    chinButton.setSelected(true);

    glassesButton = new JCheckBox("Glasses");
    glassesButton.setMnemonic('g'); 
    glassesButton.setSelected(true);

    hairButton = new JCheckBox("Hair");
    hairButton.setMnemonic('h'); 
    hairButton.setSelected(true);

    teethButton = new JCheckBox("Teeth");
    teethButton.setMnemonic('t'); 
    teethButton.setSelected(true);

    // Register a listener for the check boxes.
    CheckBoxListener myListener = new CheckBoxListener();
    chinButton.addItemListener(myListener);
    glassesButton.addItemListener(myListener);
    hairButton.addItemListener(myListener);
    teethButton.addItemListener(myListener);
...
class CheckBoxListener implements ItemListener {
    public void itemStateChanged(ItemEvent e) {
        ...
	Object source = e.getItemSelectable();

        if (source == chinButton) {
            //...make a note of it...
        } else if (source == glassesButton) {
            //...make a note of it...
        } else if (source == hairButton) {
            //...make a note of it...
        } else if (source == teethButton) {
            //...make a note of it...
        }

        if (e.getStateChange() == ItemEvent.DESELECTED)
            //...make a note of it...
        picture.setIcon(/* new icon */);
        ...
    }
}

.�El API CheckBox

Puedes ver El API Button para informaci�n sobre el API de AbstractButton del que descienden JCheckBox y JCheckBoxMenuItem. Los m�todos de AbstractButton que son m�s usados son setMnemonic, addItemListener, setSelected, y isSelected. El �nico API definido por JCheckBox y JCheckBoxMenuItem que utilizaremos son los constructores.

.�Constructores de CheckBox

Constructor Prop�sito
JCheckBox(String)

JCheckBox(String, boolean)

JCheckBox(Icon)

JCheckBox(Icon, boolean)

JCheckBox(String, Icon)

JCheckBox(String, Icon, boolean)

JCheckBox()

Crea un ejemplar de JCheckBox. El argumento string espec�fica el texto, si existe, que el checkbox deber�a mostrar. De forma similar, el argumento Icon espec�fica la imagen que deber�a utilizarse en vez de la imagen por defecto del aspecto y comportamiento. Especificando el argumento booleano como true se inicializa el checkbox como seleccionado. Si el argumento booleano no existe o es false, el checkbox estar� inicialmente desactivado.
JCheckBoxMenuItem(String)

JCheckBoxMenuItem(String, boolean)

JCheckBoxMenuItem(Icon)

JCheckBoxMenuItem(String, Icon)

JCheckBoxMenuItem(String, Icon, boolean)

JCheckBoxMenuItem()

Crea un ejemplar de JCheckBoxMenuItem. Los argumentos se interpretan de la misma forma que en los constructores de JCheckBox.

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP
ARTÍCULO ANTERIOR