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