6

上周,我非常沮丧,我有三个大型应用程序在生产中,还有更多使用 Swing 应用程序框架。后来,当我开始迁移到 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

4 回答 4

4

我发现 SAF 作为较新 NetBeans 的插件:http: //plugins.netbeans.org/plugin/43853/swing-application-framework-support

于 2012-10-25T12:29:49.630 回答
2

我没有一个好的答案,但这可能会给其他人更多的想法(在这里包含信息比发布单独的问题更有用)......

我还有一个 SAF 应用程序,我现在需要 java 1.7,因此已切换到 netbeans 7.1,并且无法在 nb7.0 中编辑表单。我在nb7.0之间切换编辑画面,然后用nb7.1编译运行。

如果我在 nb7.1 中创建一个表单,它适用于我的应用程序,并且我查看了生成的代码和 nb7.0 和 nb7.1 为 JPanel 创建的 .properties 文件,它们看起来相同。

我还没有弄清楚如何将 nb7.0 生成的 JPanel“转换”为适用于 nb7.1 的 JPanel,但我可以在 7.1 中创建一个空 JPanel,然后运行 ​​7.0 并将所有控件从 7.0 表单复制到7.1 表格。图标丢失 - NetBeans 错误和代码丢失,一般来说,这是一个代价高昂且容易出错的过程。

项目中的某处可能有一些标志表明 JPanel 是否为“SAF”。如果是这样,找到它将使迁移变得更加容易。

于 2012-05-24T23:40:22.587 回答
1

我已成功在 Netbeans 7.2 中打开 SAF 表单。使用论坛中的一些技巧后: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 向您显示一些错误或警告,请阅读这些消息并尝试找出问题所在 - 例如,您可能删除了太多内容。

于 2013-04-10T12:12:09.283 回答
1

设法将 SAF 表单移植到 Netbeans 7.2 的那个人的指示让我开始了。移植到 Netbeans 7.3 中还有更多内容。我建议从在 Netbeans 6.9 中创建的没有任何内容的简单表单开始,然后在 7.3 中创建相同的表单并比较生成的 .java 和 .form 代码。这将向您展示必须处理移植表单的所有差异。一旦你得到一个简单的表格,尝试在你使用的组件类型的示例中添加一个简单的表单,例如选项卡式窗格、按钮、复选框等。再次进行文件比较,以便您可以看到每种组件类型的不同之处。SAF 表单中的每个组件类型都包含某种文本属性资源抽象,该抽象链接到该类的属性文件中的一行,您必须断开该链接并在 Netbeans 7.3 表单中放置一个实际值。如果您错过了表单中的单个资源相关参数,那么您将收到相同的错误消息,直到您修复所有内容。我设法完成了一个极其复杂的框架的练习,我花了几天的时间部分学习曲线。只有 15 帧才能完成最复杂的工作,但不如我第一次做的主视图那么多。

于 2014-01-26T23:33:43.637 回答