Netbeans 7.1是否支持Swing Application Framework?如何从7.0迁移到7.1?

时间:2012-02-23 16:39:44

标签: java netbeans netbeans7.0 netbeans-7.1 swing-app-framework

上周,我非常沮丧,我有三个大型应用程序正在制作中,还有更多使用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 个答案:

答案 0 :(得分:4)

答案 1 :(得分:2)

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

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

如果我在nb7.1中创建一个表单,它可以正常使用我的应用程序,我已经查看了生成的代码和.properties文件nb7.0和nb7.1为JPanel创建,他们看起来很相似。

我还没想出如何将nb7.0生成的JPanel转换为与nb7.1一起使用的JPanel,但我可以在7.1中创建一个空的JPanel,然后运行7.0并从中复制所有控件7.0表格到7.1表格。图标迷失 - 一个NetBeans错误,代码丢失,通常是一个代价高昂且容易出错的过程。

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

答案 2 :(得分:1)

我已成功在Netbeans 7.2中打开SAF表单。在使用论坛的一些提示后: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"开头的标记。
  5. 我不保证在您的情况下它会使您的表单100%工作,但对我来说它有效 - 我的表单可以在Netbeans 7.2中打开。

    如果Netbeans向您显示一些错误或警告,请阅读这些消息并尝试找出错误的内容 - 例如,您可能删除了太多错误。

答案 3 :(得分:1)

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