Netbeans 7.1 прекратил поддержку Swing Application Framework? Как я могу перенести форму с 7.0 на 7.1?

На прошлой неделе я очень расстроился, у меня в работе три больших приложения, и многие другие используют Swing Application Framework. Позже, когда я начал мигрировать на Netbeans 7.1, BOOM!, больше не поддерживал SAF.

Так что я могу сделать, какие-либо идеи, как перейти на Netbeans 7.1?

Я буду признателен за вашу помощь.

PS: команда Netbeans, пожалуйста, не добавляйте фреймворки без предупреждения, которые являются просто запросом спецификации Java - JSR. Когда я начал использовать SAF, похоже, он никогда не будет прекращен.

PS2. Чтобы мы узнали, что мы используем SAF, проголосуйте по адресу https://netbeans.org/bugzilla/show_bug.cgi?id=204661

4 ответа

Решение

У меня нет хорошего ответа, но это может дать другим людям больше идей (и было бы более полезно включить сюда информацию, чем опубликовать отдельный вопрос)...

У меня также есть приложение SAF, для которого мне сейчас нужна Java 1.7, поэтому я перешел на netbeans 7.1 и не могу редактировать формы в nb7.0. Я переключаюсь между nb7.0 для редактирования экранов, затем использую nb7.1 для компиляции и запуска.

Если я создаю форму в nb7.1, она хорошо работает с моим приложением, и я посмотрел на сгенерированный код и файлы.properties nb7.0 и nb7.1, созданные, скажем, для JPanel, они выглядят одинаково.

Я не понял, как "преобразовать" сгенерированные nb7.0 JPanels в те, которые работают с nb7.1, но я могу создать пустой JPanel в 7.1, затем запустить 7.0 и скопировать все элементы управления из формы 7.0 в форма 7.1. Значки теряются - ошибка NetBeans, а код теряется, как правило, дорогостоящий и подверженный ошибкам процесс.

Где-то в проекте может быть флаг, который говорит, является ли JPanel "SAF" или нет. Если это так, его поиск значительно облегчит миграцию.

Я нашел SAF в качестве плагина для новых NetBeans: http://plugins.netbeans.org/plugin/43853/swing-application-framework-support

Мне удалось открыть форму SAF в Netbeans 7.2. после использования некоторых советов с форума: http://forums.netbeans.org/topic43775-0-asc-30.html:

  1. Удалить комментарии // <editor-fold defaultstate="collapsed" desc="Generated Code"> arround initComponents() в коде вашей формы
  2. Избавиться от всего @Action аннотации - вместо этого используйте componentObject.addActionListener () или аналогичный
  3. Избавьтесь от всех org.jdesktop.application и...getActionMap()
  4. Из файла.form удалите все теги, начинающиеся с <Property name="action" type="javax.swing.Action",

Я не гарантирую, что в вашем случае это заставит вашу форму работать на 100%, но для меня это сработало - мою форму можно открыть в Netbeans 7.2.

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

Инструкции от парня, которому удалось перенести форму SAF в Netbeans 7.2, помогли мне начать. Это еще не все, портирование в Netbeans 7.3. Я рекомендую начать с простой формы, в которой ничего не было создано в Netbeans 6.9, затем создать ту же форму в 7.3 и сравнить сгенерированный код.java и.form. Это покажет вам все различия, связанные с переносом формы. Как только вы получите простую форму, попробуйте сделать то же самое добавление в примере типов компонентов, которые вы используете, таких как панели с вкладками, кнопки, флажки и т. Д. Еще раз выполните сравнение файлов, чтобы увидеть, как отличается каждый тип компонента. Каждый тип компонента в формах SAF содержит своего рода абстракцию ресурса текстового свойства, связанную со строкой в ​​файле свойств для класса, и вам нужно разорвать эту ссылку и просто вставить фактическое значение в форму Netbeans 7.3. Если вы пропустите один параметр, связанный с ресурсом, в форме, вы получите то же самое сообщение об ошибке, пока все не исправите. Мне удалось выполнить это упражнение для чрезвычайно сложной системы, и мне потребовалось несколько дней, чтобы частично освоить кривую. Всего 15 рамок, чтобы сделать наиболее довольно сложный, но не так много, как основной вид, который я сделал в первую очередь.

Другие вопросы по тегам