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

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

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

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

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

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


person j2gl    schedule 23.02.2012    source источник
comment
работа продолжается в BSAf (better-swing-application-framework), это проект на kenai (правда, не знаю, насколько легко его реинтегрировать в Netbeans)   -  person kleopatra    schedule 23.02.2012
comment
похоже, что они делают это, чтобы поощрить/подтолкнуть пользователей к переходу на богатую платформу JavaFX 2.0. Пока что поддержка JavaFX 2.0 еще не набрала обороты и все еще находится на ранних стадиях.   -  person sttaq    schedule 23.04.2012


Ответы (4)


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

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

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

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

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

person Mary    schedule 24.05.2012
comment
Были добавлены некоторые подключаемые модули, которые могут помочь, см. netbeans.org/bugzilla/show_bug. cgi?id=204661#c59 - person Mary; 08.07.2013

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

person LorDefiX    schedule 25.10.2012
comment
Это сборка из старых исходников SAF, а не из BSAF, поэтому мы отложили проблему, но не решили ее; также обратите внимание, что плагин находится в статусе NOGO, потому что он не отображается в менеджере плагинов. - person ; 27.01.2013
comment
Это не работает, я не рекомендую его для версии 7.2. - person Omar; 15.11.2015

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

person joseph paladin    schedule 26.01.2014

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

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

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

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

person Lukasz Czerwinski    schedule 10.04.2013