Uso básico de elementos Swing con NetBeans – 04 – Uso básico de JComboBox con eventos. Ej. 01.

En esta guía podremos ver el uso básico que se le puede dar a un JComboBox, pudiendo recuperar datos y relacionarla con eventos. Esta aplicación es una variación de la que vimos en la guía anterior (03), en este caso pondremos los elementos que se relacionan con una imagen en específico dentro del JComboBox y cada vez que hagamos una selección, se mostrará una imagen en el JLabel que designamos para el caso.
Como siempre 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, el elemento principal es el JComboBox a la cual le asignamos ítems desde el modo de diseño utilizando la propiedad “model”, estas son en orden como sigue: (Computadora, Llave, Usuario, Cliente, Nota). Otro elemento es un JPanel para agregar nuestro JLabel con imagen la cual podremos asignarle un icono en modo de diseño modificando la propiedad “icon” y otro JLabel en la parte superior 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
//Este método permite especificar un índice para el jComboBox1 y cargar su imagen correspondiente.
private void inicio(){
jComboBox1.setSelectedIndex(0);
imgLabel.setIcon(createImageIcon("/com/swing/basic/img/computer.png"));
}
//Método que nos permitira cargar una imagen como icono pasándole 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 la importación necesaria en este caso.
El paso siguiente es establece un evento para nuestro JComboBox, esto le dará la funcionalidad que necesitamos. 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. Si ya vieron alguna guía anterior a esta, podrán saber la ubicación habitual tanto para la lista de eventos como también los métodos que hayamos creado.
Código Java
    private void jComboBox1ActionPerformed(java.awt.event.ActionEvent evt) {                                           
//Dependiendo del índice se carga el elemento.
//El íncide empieza de "0", que será el primer elemento del jComboBox
if(jComboBox1.getSelectedIndex() == 0){
imgLabel.setIcon(createImageIcon("/com/swing/basic/img/computer.png"));
}
else if(jComboBox1.getSelectedIndex() == 1){
imgLabel.setIcon(createImageIcon("/com/swing/basic/img/key.png"));
}
else if(jComboBox1.getSelectedIndex() == 2){
imgLabel.setIcon(createImageIcon("/com/swing/basic/img/userr.png"));
}
else if(jComboBox1.getSelectedIndex() == 3){
imgLabel.setIcon(createImageIcon("/com/swing/basic/img/client2.png"));
}
//También es posible obtener el elemento seleccionado para comparar con cierto valor.
else if(jComboBox1.getSelectedItem().toString().equals("Nota")){
imgLabel.setIcon(createImageIcon("/com/swing/basic/img/note.png"));
}
}
En este punto ya podremos ejecutar nuestro formulario y comprobar su funcionalidad. (Por si hay alguna duda en el proceso, debemos hacer clic derecho sobre nuestro archivo fuente y presionar “ejecutar archivo” ya que nuestro proyecto no tiene una clase principal definida)

No hay comentarios :

Publicar un comentario