Blog de Maki

Un blog de conocimiento libre.

25 ago 2013

Como usar un JCheckBox en Java

Los JCheckBox (botones de comprobación) se utilizan generalmente como botones de estado. Es decir proporcionan información del tipo Sí o No.Estos botones pueden resultar de mucha utilidad sobre todo a lo hora de rellenar formularios pero también pueden resultar útiles para realizar unas determinadas acciones dependiendo de su estado, es decir,cuando se selecciona ocurre una acción concreta y cuando se desmarca puede ocurrir otra .Un ejemplo de JCheckBox podría ser el siguiente:

 Vamos a verlo con un ejemplo sencillo hecho paso a paso:
  1. En primer lugar importamos las librerías necesarias:
        import javax.swing.JCheckBox;
        import java.awt.event.ItemListener;
        import java.awt.event.ItemEvent;
      
  2. Creamos el JCheckBox:
        JCheckBox cbFunciona = new JCheckBox("Activar bot\u00F3n Funciona");
        cbFunciona.setBounds(172, 57, 145, 23);
        contentPane.add(cbFunciona);
      
  3. Ahora creamos el evento que nos permitirá realizar una determinada acción si se selecciona el JCheckBox y otra cuando no esté seleccionado:
        cbFunciona.addItemListener(new ItemListener(){
       @Override
       public void itemStateChanged(ItemEvent e) 
       {
        if(e.getStateChange()==ItemEvent.SELECTED)
         //Acción cuando es seleccionado
        else
        {
         //Acción cuando no está seleccionado
        }
       }
      });
      
Listo ya podemos usar nuestro JCheckBox. Para que se vea más claro voy a poner el siguiente ejemplo, en el que al marcar el JCheckBox se activa un botón y cuando se desmarcar se desactiva, que podéis copiar y pegar tal cual para probarlo:
package ejemplo;

import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JCheckBox;
import javax.swing.JButton;
import java.awt.event.ItemListener;
import java.awt.event.ItemEvent;

public class JCheckbox extends JFrame {

 /**
  * 
  */
 private static final long serialVersionUID = 1L;
 private JPanel contentPane;
 JButton btnFunciona;

 /**
  * Launch the application.
  */
 public static void main(String[] args) {
  EventQueue.invokeLater(new Runnable() {
   public void run() {
    try {
     JCheckbox frame = new JCheckbox();
     frame.setVisible(true);
    } catch (Exception e) {
     e.printStackTrace();
    }
   }
  });
 }

 /**
  * Create the frame.
  */
 public JCheckbox() {
  setTitle("Ejemplo de uso de JCheckbox");
  setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  setBounds(100, 100, 450, 239);//Puede ser necesario ajustar este tamaño
  contentPane = new JPanel();
  contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
  setContentPane(contentPane);
  contentPane.setLayout(null);
  
  btnFunciona = new JButton("Funciona");
  btnFunciona.setEnabled(false);
  btnFunciona.setBounds(172, 57, 176, 23);//Puede ser necesario ajustar este tamaño
  contentPane.add(btnFunciona);
  
  JCheckBox cbFunciona = new JCheckBox("Activar bot\u00F3n Funciona");
  cbFunciona.setBounds(172, 57, 145, 23);//Puede ser necesario ajustar este tamaño
  contentPane.add(cbFunciona);
  cbFunciona.addItemListener(new ItemListener(){
   @Override
   public void itemStateChanged(ItemEvent e) 
   {
    if(e.getStateChange()==ItemEvent.SELECTED)
     btnFunciona.setEnabled(true);
    else
    {
     btnFunciona.setEnabled(false);
    }
   }
  });

 }
}
Nota: Tened en cuanta que el nombre de la clase que creáis sea JCheckBox y el paquete se llame ejemplo porque si son distintos y no los cambiáis os dará error. También puede ocurrir que al ejecutar el programa el tamaño de la ventana no se ajuste bien y entonces el botón y el checkbox no se vean correctamente, para solucionar eso solo hay que ajustar los tamaños de los mismos.

0 comentarios:

Publicar un comentario