2009-04-23 12 views
8

Ho creato un'applicazione Java GUI abbastanza consistente con molte finestre di moduli in cui le impostazioni sono bloccate nei file .form. Mi chiedo se c'è un modo per convertire o refactoring questi file .form in vero codice sorgente Java che posso modificare?Converti i file .form Java GUI Builder nel codice sorgente?

La GUI è stata creata utilizzando Netbeans 6.5.

+0

Ho pensato che i file .form sono specifici di Netbeans e che i file .java hanno il codice sorgente completo per Windows. Non è corretto? Non puoi modificare i file java? – kazanaki

risposta

6

La mia comprensione è che i file ".form" vengono utilizzati solo dal builder della GUI di Netbeans per tenere traccia di dove si trovano i componenti della GUI. Quando si aggiungono componenti nella vista Progettazione, Netbeans aggiorna automaticamente i file sorgente (.java) effettivi. È possibile modificare effettivamente questi file .java direttamente, ad esempio, modificare l'etichetta su un pulsante, ma se lo si fa all'interno di Netbeans, utilizzerà i file .form per rigenerare automaticamente i file di origine, distruggendo le modifiche manuali.

Nella mia esperienza, una volta presa la decisione di modificare manualmente i file .java, i file .form non sono più sincronizzati e non sarà più possibile utilizzare correttamente il builder della GUI Netbeans.

4

kazanaki ha ragione, i file java generati possono essere modificati ma i file .java risultanti sono notoriamente disordinati, grandi e difficili da interpretare. Inoltre, non è possibile modificare alcune cose (come indicato nei commenti nel file .java generato) senza rendere inutile il rendering di Matisse perché si aspetta che il file abbia le cose in un certo modo. Detto questo, se stai attento a non calpestare le dita dei piedi di Matisse, puoi programmare via e non toccherà il tuo codice che è bello.

Anche il fuorilegge, se si modifica qualcosa che è già presente in Matisse, verrà sovrascritto. Qualsiasi modifica apportata al di fuori di matisse deve essere al di fuori di qualsiasi elemento coperto dal xml che matisse utilizza per generare il codice.

Ho provato questo genere di cose prima con un successo limitato e alla fine ho appena riscritto l'interfaccia per evitare questi mal di testa esasperanti.

1

Posso modificare la fonte, ho scoperto la soluzione. Il problema era che stavo usando "AbsoluteLayout" nel builder della GUI. Netbeans stava creando una classe AbsoluteLayout nascosta che si trovava all'interno dei file .form. SE ho cancellato i file .form il progetto non sarebbe più stato costruito. La soluzione consisteva nel modificare la forma del layout "FreeForm" e quindi eliminare i file .form e rimuovere i commenti del builder della GUI.

Grazie per l'aiuto ragazzi, vi do entrambi +1.

Problemi correlati