Конвертировать .form файлы Java GUI Builder в исходный код? - PullRequest
8 голосов
/ 23 апреля 2009

Я создал довольно солидное приложение с графическим интерфейсом Java со многими окнами форм, где настройки заблокированы в файлах .form. Мне интересно, есть ли способ конвертировать или реорганизовать эти файлы .form в реальный исходный код Java, который я могу изменить?

GUI был создан с использованием Netbeans 6.5.

Ответы [ 3 ]

6 голосов
/ 23 апреля 2009

Насколько я понимаю, файлы ".form" используются только сборщиком графического интерфейса Netbeans для отслеживания расположения компонентов графического интерфейса. При добавлении компонентов в режиме конструктора Netbeans автоматически обновляет фактические исходные (.java) файлы. Вы можете фактически изменить эти файлы .java напрямую, скажем, для изменения метки на кнопке, но если вы сделаете это в Netbeans, он будет использовать файлы .form для автоматической регенерации исходных файлов, уничтожая ручные изменения.

По моему опыту, как только вы примете решение изменить файлы .java вручную, файлы .form перестают синхронизироваться, и вы больше не сможете правильно использовать построитель графического интерфейса Netbeans.

4 голосов
/ 24 апреля 2009

kazanaki прав, сгенерированные java-файлы могут быть изменены, но результирующие .java-файлы заведомо грязные, большие и их трудно интерпретировать. Кроме того, вы не можете изменить некоторые вещи (как отмечено в комментариях в сгенерированном файле .java), не сделав matisse бесполезным, поскольку он ожидает, что файл будет иметь определенные свойства. При этом, если вы будете осторожны, чтобы не наступить на ноги Матисса, вы можете написать код, и это не затронет ваш код, что приятно.

Outlaw также прав, если вы измените что-либо, что уже находится в поле зрения Матисса, оно будет перезаписано. Любые изменения, которые вы делаете вне matisse, должны быть вне любого элемента, который покрывается xml, который matisse использует для генерации кода.

Я пробовал подобные вещи раньше с ограниченным успехом и в итоге просто переписал интерфейс, чтобы избежать этих сводящих с ума головных болей.

1 голос
/ 24 апреля 2009

Я могу отредактировать источник, я нашел решение. Проблема была в том, что я использовал «AbsoluteLayout» в GUI Builder. Netbeans создавал некоторый скрытый класс AbsoluteLayout, который был внутри файлов .form. Если я удалил .form файлы, проект больше не будет собираться. Решением было изменить форму на «FreeForm», а затем я мог удалить файлы .form и удалить комментарии разработчика GUI.

Спасибо за помощь, ребята, я даю вам оба + 1.

...