Uso básico de elementos Swing con NetBeans – 02 – Uso básico de JButton, JCheckBox y JList con eventos.

Trabajando con JButton, JCheckBox y JList en Java

En la guía anterior vimos algunos usos básico del JButton, en este caso solo la utilizaremos con el evento ActionPerformed para ejecutar códigos sobre JCheckBox y JList. Los JCheckBox son útiles para seleccionar varios elementos de una lista de opciones y los JList pueden almacenar lista de elementos al igual que recuperarlas de forma sencilla. Para esta guía veremos una lista de opciones con JCheckBox, al seleccionar alguno, la etiqueta del mismo se cargará en la lista que tenemos a la derecha. Esto nos dará una idea de la forma de recuperar datos de una JCheckBox y saber cuándo esta seleccionado o no utilizando eventos. También podremos ver como se agregan datos a un JList y como vaciar de elementos utilizando los llamados DefaultModel.
Para facilitar el diseño debemos de crear paquetes, una para nuestros formularios y otra para las imágenes que se usan habitualmente, en cuestión de imágenes para botones es recomendable “png” con una dimensión 32x32 para los demás usos es a criterio de cada uno. En la imagen del diseño que se expone más abajo se especifican los puntos importantes.
Diseñamos un formulario utilizando un JFrame, este formulario contendrá varios JCheckBox, JButton, un JList y una imagen que se carga utilizando una etiqueta. Cada elemento tiene un nombre de variable como se especifica en la imagen, tomar en cuenta este punto ya que es necesario para referenciar los objetos. Se puede cambiar el “Nombre de variable” de cada objeto haciendo clic derecho sobre la misma y clic en “Cambiar nombre de variable…”. (clic sobre la imagen para ampliar)
Antes de continuar debemos de crear una variable de clase tipo DefaultListModel para agregar elementos a la lista y limpiarla. Esta variable de clase puede ir seguida del cierre de llave del constructor del JFrame.
Código Java
DefaultListModel modelo = new DefaultListModel();
Creamos el método “checkBox()” en modo fuente, los métodos creados por nosotros las ubicamos al final de la declaración de variables, justo antes de la llave de cierre general. Este método no permitirá deseleccionar los JCheckBox y la enlazaremos con un JButton.
Código Java
private void checkBox(){
jcbUno.setSelected(false);
jcbDos.setSelected(false);
jcbTres.setSelected(false);
jcbCuatro.setSelected(false);
jcbCinco.setSelected(false);
}
El siguiente paso es establecer los eventos, cada botón y JCheckBox deberá implementar uno para que tenga funcionalidad. El evento que normalmente se utiliza para botones y JCheckBox es el ActionPerformed. En la imagen más abajo se ve como es la implementación y seguido el código para los eventos.
Código Java
    private void jcbUnoActionPerformed(java.awt.event.ActionEvent evt) {                                       
if(jcbUno.isSelected()){
jList.setModel(modelo);
modelo.addElement(jcbUno.getText());
}
}

private void jcbDosActionPerformed(java.awt.event.ActionEvent evt) {
if(jcbDos.isSelected()){
jList.setModel(modelo);
modelo.addElement(jcbDos.getText());
}
}

private void jcbTresActionPerformed(java.awt.event.ActionEvent evt) {
if(jcbTres.isSelected()){
jList.setModel(modelo);
modelo.addElement(jcbTres.getText());
}
}

private void jcbCuatroActionPerformed(java.awt.event.ActionEvent evt) {
if(jcbCuatro.isSelected()){
jList.setModel(modelo);
modelo.addElement(jcbCuatro.getText());
}
}

private void jcbCincoActionPerformed(java.awt.event.ActionEvent evt) {
if(jcbCinco.isSelected()){
jList.setModel(modelo);
modelo.addElement(jcbCinco.getText());
}
}

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
modelo.clear();
}

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
checkBox();
}
Al entrar en modo fuente todo deberá quedar de esta forma, la mayor parte son códigos generados automáticamente al crear el JFrame y al agregar los objetos. Lo importante es donde ubicamos cada línea de código que creamos más arriba.
En este punto ya podremos ejecutar nuestro formulario y comprobar su funcionalidad.

No hay comentarios :

Publicar un comentario