Uso básico de elementos Swing con NetBeans – 03 – Uso básico de JRadioButton con eventos.

En esta guía veremos cómo se agrupa y utiliza un JRadioButton, como se ver en el diseño más abajo serán cinco los JRadioButton que agruparemos utilizando ButtonGroup, esto permitirá que el usuario solo pueda seleccionar un elemento cada vez. La aplicación es sencilla, cuando el usuario seleccione uno de los JRadioButton se cargará en el JLabel la imagen que representa. El grupo de cinco imágenes es a griterío de cada uno.
Como indicamos en las guías anteriores, 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 tendrá como vemos en la imagen cinco JRadioButton, un JPanel para agregar nuestro JLabel con imagen y otro JLabel para el título. 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)
Creamos los métodos siguiente 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. Se agregan comentario para aclarar la función de cada línea de código.
Código Java
//Método que arranca con el constructor del JFrame
private void inicio(){
//Utilizamos ButtonGroup para agrupar los jRadioButton.
//Agrupar es ideal para permitir que se seleccione solo un elemento a la vez.
ButtonGroup group = new ButtonGroup();
group.add(jRadioButton1);
group.add(jRadioButton2);
group.add(jRadioButton3);
group.add(jRadioButton4);
group.add(jRadioButton5);
//Al arrancar indicamos el este seleccionado el primer jRadioButton.
jRadioButton1.setSelected(true);
//Cargamos la imagen indicada al JLabel.
//La URL debe indicar el paquete en el que está la imagen.
//El paquete sería en este caso com.swing.basic.img
imgLabel.setIcon(createImageIcon("/com/swing/basic/img/computer.png"));
}
//Método que nos permitira cargar una imagen como icono pasandole una url
protected static ImageIcon createImageIcon(String path) {
java.net.URL imgURL = UsoJRadioButton.class.getResource(path);
if (imgURL != null) {
return new ImageIcon(imgURL);
} else {
System.err.println("Archivo no encontrado: " + path);
return null;
}
}
Antes de continuar veremos que método se llama desde el constructor y que importaciones son las necesarias. La imagen y más abajo las importaciones necesarias.
Código Java
//Importaciones necesarias.
import javax.swing.ButtonGroup;
import javax.swing.ImageIcon;
El siguiente paso es establecer los eventos, cada JRadioButton deberá implementar uno para que tenga funcionalidad. El evento que normalmente se utiliza para este tipo de elementos 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 jRadioButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                              
//Para que se ejecute el código el jRadioButton deberá estar seleccionado.
if(jRadioButton1.isSelected()){
//Utilamos nuestro método creado para cargar la imagen.
imgLabel.setIcon(createImageIcon("/com/swing/basic/img/computer.png"));
}
}

private void jRadioButton2ActionPerformed(java.awt.event.ActionEvent evt) {
if(jRadioButton2.isSelected()){
imgLabel.setIcon(createImageIcon("/com/swing/basic/img/key.png"));
}
}

private void jRadioButton3ActionPerformed(java.awt.event.ActionEvent evt) {
if(jRadioButton3.isSelected()){
imgLabel.setIcon(createImageIcon("/com/swing/basic/img/userr.png"));
}
}

private void jRadioButton4ActionPerformed(java.awt.event.ActionEvent evt) {
if(jRadioButton4.isSelected()){
imgLabel.setIcon(createImageIcon("/com/swing/basic/img/client2.png"));
}
}

private void jRadioButton5ActionPerformed(java.awt.event.ActionEvent evt) {
if(jRadioButton5.isSelected()){
imgLabel.setIcon(createImageIcon("/com/swing/basic/img/note.png"));
}
}
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 en la entrada