Para solicitar desarrollo de software y/o aplicaciones personalizadas, escríbenos al formulario de contacto




Breaking News



¡BUSCA MÁS CONTENIDO AQUÍ!



▷ Curso de JAVA: Obtener Id de un JCombobox con Base de datos 【Creando listas personalizadas JAVA-MySQL】






Hola amigos lectores y seguidores de Software Galaxia Blogs, el día de hoy vamos estar trabajando con un componente muy útil a la hora de trabajar con interfaces gráficas y este es el JCombobox o listas desplegables, solemos utilizar dicho componente para visualizar una serie de opciones u items por ejemplo; un listado de ciudades, un listado de nombres, entre otras cosas.

El día de hoy vamos a darle un enfoque diferente a este componente, haremos algo mas complejo con el mismo, en pocas palabras vamos a personalizar nuestro componente para convertirlo en una herramienta muy útil y versátil a la hora de trabajar nuestros proyectos, haremos que aparte de mostrar el listado de items de una manera descriptiva igualmente cada item de manera interna posea un id o valor único que lo identifique, nos resultara muy útil a la hora de trabajar con bases de datos.

Si aún tienes dudas  de cómo crear un proyecto, ventanas JFrame, etc. Te invito a que mires el siguiente POST  Curso de JAVA: Cómo hacer un proyecto, un paquete y un formulario?

No siendo mas comencemos!!!


Links de código fuente


JCombobox personalizado




Explicación por Videotutorial:






Explicación por Foto-Tutorial:

Iniciamos con lo básico lo cual será explicar como esta dividido nuestro proyecto, vamos a estar mirando la estructura de las clases y las librerías que necesitamos para que nuestro ejemplo sea ejecutado de la mejor manera, de ante mano debo decir que vamos a trabajar con una base de datos, de la cual vamos a solicitar información para poder mostrarla en nuestro ejemplo.

1. En la siguiente imagen se ilustra la estructura del proyecto, lo primero que podemos apreciar es la división de los paquetes los cuales se dividen en tres, estamos trabajando bajo el patrón de diseño modelo-vista-controlador(MVC) y de esta manera poder tener una mejor división de nuestro código


  • Paquete model: en este paquete tenemos alojadas tres clases, tenemos la clase Pool.java la cual nos permitirá establecer una conexión con la base de datos, si deseas ampliar este concepto te dejare una entrada donde explicamos como crear dicha clase; curso java : ¿Cómo hacer un pool de conexiones? , la clase DatosDB.java y la clase ModelDatosDB.java, serán las que alojaran la información que obtengamos de la base de datos, en estas clases igualmente tenemos los métodos que se necesitan para obtener la información deseada. 

  • Paquete ejemplocomboboxconid(view): en este paquete estarán  alojadas las clase de la interfaz gráfica(ComboboxIdAndValue.java) y la clase principal(EjemploJcomboboxConId.java) la cual nos permitirá ejecutar nuestro proyecto.

  • paquete controller: en este paquete vamos a centrar el desarrollo de este tutorial, aquí crearemos las clases que nos permitirán personalizar nuestro JCombobox.

  • librerías requeridas: por ultimo pero no menos importante, debemos agregar las librerías requeridas para trabajar con nuestra base de datos.

Estructura del proyecto JCombobox personalizado
Estructura proyecto JCombobox personalizado en java

2. Ahora miremos la estructura de la base de datos, la cual es muy sencilla ya que solo queremos ilustrar nuestro ejemplo, esta base de datos posee tres tablas(usuarios, productos, usuarioproducto1).
la relación que hay entre la tabla usuarios y productos es de muchos a muchos, por esta razón creamos una tercera tabla(usuarioproducto1), ya que muchos usuarios o clientes pueden tener o comprar muchos productos e igualmente ese producto puede estar asignado a muchos usuarios, la estructura es muy sencilla de comprender.


Estructura Base de Datos


Entrando en contexto nuestro ejemplo funcionara de la siguiente manera, supongamos que tenemos un sistema implementado en un supermercado, el cual desea tener un modulo que dependiendo el usuario seleccionado, me muestre o imprima la lista de productos que este ha comprado, básicamente esta sera la idea central de nuestro ejemplo, vamos a trabajar con un JCombobox para mostrar el listado de clientes o usuarios y un JTable para mostrar el listado de productos que este ha comprado.

3. Bueno, aquí tenemos la interfaz de gráfica de nuestro ejemplo; podemos apreciar lo que mencionamos hace un momento, tenemos un JCombobox para listar los usuario y un JTable para mostrar los productos que este tiene asignado.


Interfaz gráfica JCombobox personalizado
Interfaz Gráfica JCombobox personalizado


Necesitamos acceder a las propiedades de nuestro JCombobox en la sección code, seguido a esto seleccionar la opción Type Parameters muy importante agregar la palabra <Object> y de esta manera verificar el tipo de datos que manejara nuestro JCombobox, normalmente esta opción esta vacía o tiene como tipo de dato <String> por lo tanto debemos cambiar esto para evitar errores de ejecución.

Propiedades del JCombobox
Propiedades del JCombobox


4. Creamos una nueva clase la cual estará alojada en el paquete controller, esta clase la llamaremos Item.java, sera de mucha importancia ya que nos permitirá tener el Id y el nombre o descripción que agregaremos a nuestro JCombobox, el Id siempre estará oculto lo único que podremos visualizar sera la descripción todas estas propiedades las agregaremos a esta clase. 


Clase Item.java

5. Aquí tenemos la clase Item.java, la cual posee dos atributos los cuales son el id y la descripción, uno será tipo entero(int) y otro tipo String, el método constructor de la clase le pasaremos dos parámetros, los cuales hacen referencia a los dos atributos(id, descripción), generamos los métodos get y set de dichos atributos para poder obtener estos valores desde otras clases.
Por ultimo y los mas importante, debemos sobrescribir el método toString y de esta manera solo visualizar el valor de la descripción y mantener oculto el id.


Estructura clase Item.java

6. Siguiendo en el paquete controller, creamos una nueva clase la cual llamaremos controller.java, esta clase es muy importante porque nos permitirá interactuar con la vista y modelo de nuestra aplicación, aquí realizaremos todo el proceso para asignar los datos al JComboBox e igualmente mostrar la información obtenida en el JTable


clase controller java
Clase controller.java

7. Como primera medida debemos crear un objeto de la clase ComboboxIdAndValue.java, que no es mas que nuestra interfaz gráfica, y creamos el método constructor de la clase y le vamos a pasar como parámetro nuestra vista, de esta manera conectamos el controlador con la vista o interfaz gráfica de nuestra aplicación.

método constructor controller java

8. Siguiendo con la clase controller.java, creamos un método al cual hemos llamado getUsuarios, este nos permitirá obtener el listado de usuarios almacenados en la base de datos, expliquemos cada linea de código.


método getUsuarios clase controller java
método getUsuarios clase controller java


  • Lo primero que haremos sera crear dos objetos, el primero sera de tipo ArrayList y este a su vez sera de tipo DatosDB, en este objeto vamos almacenar la información que obtengamos de la consulta a la base de datos, igualmente creamos un objeto de tipo ModelDatosDB para poder acceder a los métodos que nos permitirán realizar las consultas.

  • Al objeto tipo ArrayList(list) le asignaremos los registros que obtengamos de la consulta a la base de datos, para esto debemos acceder al método getUsuarios de la clase ModelDatosDB.

  • Verificamos si se obtuvo algún resultado, para esto validamos si la longitud del ArrayList es mayor que cero(0).

  • Creamos un ciclo for y dentro de este vamos a obtener los valores alojados en el ArrayList, la linea de código mas importante será, la linea # 40 la cual haciendo uso del método addItem, vamos agregar dichos valores para esto debemos crear un objeto de la clase Item.java, recordemos que esta clase la creamos con anterioridad y le pasamos los dos parámetros que son: el id y la descripción.


9. Siguiendo con la clase controller.java, vamos a crear el método que nos permitirá obtener el listado de productos, claro esto dependerá del usuario seleccionado por lo tanto este método llevará un parámetro tipo entero que será el Id del usuario.

método getProductos java
método getProductos.java controller 
  • Como podemos ver este método tiene casi la misma estructura que el pasado, en la linea # 60 llamamos al método que nos permitirá obtener el listado de productos dependiendo el usuario seleccionado, luego se hacen las respectivas validaciones y se agregan los datos a un JTable, si aun no sabes como realizar este proceso; te dejaré una entrada donde explicamos paso a paso como agregar datos a un JTable, Curso de java: cómo agregar datos de un formulario a una tabla, y eliminarlos de la misma.
10. El ultimo método que agregaremos a nuestra clase será el que nos permitirá eliminar los datos de un JTable, esto lo hacemos con el fin de actualizar el JTable cuando cambiemos los items del JCombobox ya que sino lo hacemos no tendremos el resultado deseado.  


método eliminar celdas controller.java
método eliminar celdas JTable 


11. Nuestro método constructor quedaría de la siguiente manera: 
Simplemente llamaremos a los métodos que creamos hace un momento, llamamos al método getUsuarios y el método getProductos al cual le vamos a pasar como parámetro el primer item de la lista de nuestro JCombobox, para obtener dicho Item hacemos uso de la clase Item.java y accedemos al id a través del método getId.


 método constructor de la clase controller.java
método constructor de la clase controller.java
  

12. Vamos a trabajar con eventos de tipo ActionListener, el cual se accionara cuando seleccionemos algún item de nuestro JCombobox, simplemente vamos a llamar al método eliminarceldas y luego llamaríamos al método getProductos y de esta manera actualizar los datos del JTable. 


eventos clase controller.java
Eventos clase controller.java


12. Para finalizar, en la clase de nuestra interfaz gráfica, debemos crear un objeto tipo controller, y de esta manera poder conectar nuestra clase controller.java a nuestra vista y listo de esta manera habríamos terminando con el desarrollo de nuestro ejemplo.


conectamos el controlador con la vista
13. Aquí tenemos el resultado final de nuestro ejemplo, los datos del JTable irán cambiando dependiendo el item o el usuario que seleccionemos desde nuestro JComboxbox.


resultado final proyecto java


Con esto hemos concluido con el desarrollo del capitulo de hoy, el código fuente de todo este proyecto esta disponible en nuestra sección de zona de descargas, igualmente tenemos un repositorio creado en GitHub para que puedas visualizar todo el código de la mejor manera posible.

¡Suscríbete Ahora!

🔻




Si tienes alguna  otra forma de implementar esta ejemplo no dudes en compartirla, y así poder compartir opiniones sobre el tema.

¿Quieres aprender a realizar aún más cosas y personalizar tus programas hechos en el lenguaje de programación JAVA?, si tu respuesta es "Sí", puedes acceder a todos los tips de JAVA que hemos estado publicando en este blog, dando clic aquí.
  
Suscríbete a nuestro blog, vía Email o RSS; además puedes seguirnos a través de nuestras redes sociales como: FacebookTwitterYouTube y Google+

Si te fue de gran ayuda este material, no olvides compartirlo con tus amigos. 
Si tienes dudas o sugerencias al respecto; puedes dejarnos tus comentarios.
Bendiciones...

No hay comentarios.