2009-04-23 18 views
8

He creado una aplicación de GUI bastante importante con muchas ventanas de formulario donde la configuración está bloqueada en archivos .form. Me pregunto si hay alguna forma de convertir o refactorizar estos archivos .form en código fuente real de Java que pueda modificar.¿Convertir los archivos .form de Java GUI Builder al código fuente?

La GUI se creó con Netbeans 6.5.

+0

Pensé que los archivos .form son específicos de Netbeans y que los archivos .java tienen el código fuente completo para las ventanas. ¿No es esto correcto? ¿No puedes editar los archivos java? – kazanaki

Respuesta

6

Tengo entendido que los archivos ".form" solo son utilizados por el constructor de la interfaz gráfica de usuario de Netbeans para realizar un seguimiento de dónde están los componentes de la GUI. Cuando agrega componentes en la vista de diseño, Netbeans actualiza automáticamente los archivos de origen (.java). Usted puede modificar estos archivos .java directamente, por ejemplo, cambiar la etiqueta de un botón, pero si lo hace dentro de Netbeans, usará los archivos .form para regenerar automáticamente los archivos fuente, destruyendo sus cambios manuales.

En mi experiencia, una vez que toma la decisión de modificar los archivos .java de forma manual, los archivos .form quedan desincronizados y ya no podrá usar el generador de la interfaz gráfica de usuario de Netbeans correctamente.

4

kazanaki tiene razón, los archivos java que se generan se pueden modificar pero los archivos .java resultantes son notoriamente desordenados, grandes y difíciles de interpretar. Además, no puede cambiar algunas cosas (como se señala en los comentarios en el archivo .java generado) sin hacer inútil el matisse porque espera que el archivo tenga cosas de cierta manera. Dicho eso, si tienes cuidado de no pisar los dedos de los pies de Matisse, puedes codificar y no tocará tu código, lo cual es bueno.

Outlaw es correcto también, si cambia algo que ya está en la opinión de Matisse se sobrescribirá. Cualquier cambio que realice fuera de matisse debe estar fuera de cualquier elemento que esté cubierto por el xml que matisse utiliza para generar el código.

He intentado este tipo de cosas antes con un éxito limitado y, finalmente, reescribí la interfaz para evitar estos enloquecedores dolores de cabeza.

1

Puedo editar la fuente, descubrí la solución. El problema fue que estaba usando el "AbsoluteLayout" en el constructor de GUI. Netbeans estaba creando una clase oculta de AbsoluteLayout que estaba dentro de los archivos .form. SI eliminé los archivos .form, el proyecto ya no se compilará. La solución fue cambiar el formato para que fuera de diseño "FreeForm" y luego pude eliminar los archivos .form y eliminar los comentarios del generador de la GUI.

Gracias por la ayuda chicos, les doy +1 a ambos.

Cuestiones relacionadas