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:
|
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. |