miércoles, 19 de mayo de 2010

Net Beans no actualiza los ficheros de propiedades trabajando con Swing Application Framework

Hoy me he encontrado un pequeño problema al trabajar con Net Beans 6.8 realizando una aplicación de escritorio con Swing Application Framework. Un error que no es grave, pero que puede producir grandes niveles de frustración si no se da con la tecla.

Normalmente, trabajando con este entorno, tenemos nuestros paneles Swing enlazados con ficheros de propiedades en los que se definen los textos para nuestros componentes. Net Beans se encarga de ir actualizando los ficheros de propiedades, haciendo muy cómodo el trabajo.

Hasta ahí todo bien, pero, ¿qué pasa si renombramos un panel con la opción rename del IDE? En principio todo parece correcto: se cambia el nombre de la clase, se actualizan todas las referencias, el proyecto sigue compilando... Si seguimos trabajando con nuestro panel todo parecerá ser correcto. Podemos agregar nuevos controles o modificar sus textos y el editor se actualiza, pero... al ejecutar salta la sorpresa. Los nuevos controles no tienen texto, los modificados no se han actualizado... ¿qué he hecho para merecer esto?

Si nos vamos al fichero de propiedades, veremos que, efectivamente, los últimos cambios en el editor gráfico no se han visto reflejados. Lógicamente podemos modificar los que queremos directamente en este fichero, pero, por algún extraño motivo, la sincronización desde el editor gráfico hacia el .properties se ha perdido. ¿¿Por qué?? Pues la verdad es que no lo sé. He revisado todo lo que se me ha ocurrido sin encontrar una respuesta, pero sí una solución. Basta con cerrar el panel que hemos renombrado y volver a abrirlo para que todo vuelva a funcionar como siempre.

Este fallo tiene dos grandes problemas. Uno es que cuando caes en la cuenta de que los ficheros de propiedades no se están actualizando, lo más probable es que no seas capaz de encontrar la causa, ya que puede que haga mucho tiempo que renombraste el panel, y te pases un buen rato revisando tu código sin suerte. El otro es que luego hay que tener la ocurrencia de recurrir al "reset" (cerrar y abrir la clase) para que todo vuelva a la normalidad.

Un pequeño error más que anotarle a este IDE trabajando con SAF.

No hay comentarios:

Publicar un comentario

Cualquier aportación será bienvenida