Si hay algo que me llamó la atención de los video tutoriales de NetBeans 6.0, es el de “Building a Java Desktop Database Application“.

En realidad lo que más me llamó sorprendió es el tema de ver como los distintos swing controls “bindeaban” entre si, es decir, estaban vinculados de forma tal que al cambiar el valor de un control se actualizaba el o los controles relacionados. Ésto en realidad no es ninguna novedad, de hecho así funcionan la mayoría de las interfaces, y hasta en Visual Basic se puede hacer, pero aun no lo había visto tan integrado a un IDE para el desarrollo en Java.

En busca de un buen ejemplo donde visualizar esto, me encontré con el artículo GUIs dinámicas con Beans Binding y NetBeans 6.0. A continuación, basado en el articulo nombrado, los pasos para realizar un ejemplo bien básico:

binding.JPG

  • Crear una clase Cancion (con los atributos titulo, artista, duración)
  • Crear una clase OrigenDatos con un atributo canciones, que es una List de Cancion.
  • Crear una clase visual con una jList y tres jLabels.
  • Arrastrar la clase OrigenDatos al formulario, para que NetBeans la agregue en la rama “Other Components” de la ventana “Inspector”.
  • En las propiedades de la jList, seleccionar de la solapa Binding la propiedad elements. En BindingSource seleccionar OrigenDatos, en Binding Expression “${canciones}” y en Display Expression “${artista}”.

Hasta acá tenemos una jList, enlazada al atributo canciones de OrigenDatos (donde canciones es una List de Cancion) y en la jList se visualizará el atributo artista de la clase Cancion.

Ahora, debemos enlazar los jLabels al jList.

  • En la propiedades de los jLabels, seleccionar de la solapa Binding la propiedad text. En BindingSource seleccionar la jList y en Binding Expression “${selectedElement.artista}”, “${selectedElement.titulo}” y “${selectedElement.duracion}” respectivamente para cada jLabel.

Así, cuando se selecciona un elemento de la lista, se actualizan los jLabels con los atributos artista, titulo y duracion de la clase Cancion que tiene enlazado el jList.

De esta forma, queda el ejemplo totalmente funcional, sin ingresar una línea de código (NetBeans lo hizo por nosotros).

El ejemplo es muy básico y como habrán visto, no entré en demasiado detalle. Recomiendo leer el artículo del cual me basé (GUIs dinámicas con Beans Binding y NetBeans 6.0) pues es excelente.