Experiencias con java y el escritorio

Como pasa el tiempo.
Ya van casi 4 años desde que comencé a hacer mis pinitos en java swing con aquel entrañable fmap(algún día tendréis noticias de el). Por aquella época programaba con struts y junto con algún que otro pequeño script en java habían sido mis únicas experiencias con este lenguaje. Me decidí entonces a conocerlo un poco mas a fondo (con struts siempre era lo mismo: modelo, actions, daos, mapeo struts-config.xml y a la vista jsp, html, javascript, etc. Puras aplicaciones de gestión) y como en la empresa para la que trabajaba no tenía la oportunidad no se me ocurrió mejor forma que plantearme un pequeño proyectillo personal utilizando swing para ir haciendo cosas prácticas.
Al principio me golpee varias veces con los layouts siempre engorrosos de swing, y al final cuando ya le había cogido el truco apareció matisse, tan bueno me pareció este diseñador de interfaces que acabé por sustituir todo mi trabajo anterior por una esplendida y sencilla interfaz “matisse”.
Fué en esa época en la que aprendí a utilizar los hilos en java (mi pequeña aplicación no se podía congelar recorriendo un sistema de ficheros!), a utilizar los listeners swing, a utilizar apache derby, a conocer mas a fondo los típicos componentes (jlist, jtree, jbutton, etc…), a tener mucho cuidadito con el consumo de memoria (java se encarga de la memoria si, jejeje, pero no siempre cuando tu quieres), a utilizar el patrón singleton, etc.
En fín, que desde entonces hasta ahora no fueron demasiados los avances en la librería de escritorio oficial de java, que por otro lado siempre ha ido detrás de las librerías gráficas y lenguajes nativos de cada S.O. Quizás el mas destacable antes de java6 fue la aparición allá por el 2006-2007 del swing application framework para intentar poner un poco de orden en todo lo que se hacía con swing. Mediante este framework se nos guía acerca de creación de acciones (listeners) mediante anotaciones, manejo de recursos, uso de tareas(hilos), persistencia de datos, y nos provee de una arquitectura básica inicial con una serie de métodos predefinidos que conforman el ciclo de vida de la aplicación: launch, initialize, startup, ready, exit, shutdown.
Pero con java 6 se introducen novedades importantes: las nuevas clases SystemTry y TryIcon nos permiten enviar la aplicación al área de notificación de tu S.O. y a través de la Desktop Api podremos interactuar con determinados servicios del S.O.
Lo que parece claro es que el futuro de swing pasa cada vez mas por una mayor integración con el S.O. a todos los niveles, esperamos acontecimientos.
http://www.netbeans.org/kb/60/java/gui-db
http://www.netbeans.org/kb/60/java/gui-saf.html
https://appframework.dev.java.net/intro/index.html
http://java.sun.com/developer/technicalArticles/javase/swingappfr/#code9
















