我目前在考虑将一个小/中型项目从AWT转换为SWT,但Swing仍未完全排除。我考虑将主窗口转换为SWT_AWT桥接对象,但我不知道这个语义是如何工作的。之后,我计划逐个更新对话框,但不一定在一个版本内完成。这可能吗?
有人做过类似的转换并可以给我一些提示吗?也许有教程可供参考?甚至可能有工具可以自动化部分内容吗?我已经尝试过谷歌搜索,但没有结果。
更新:另外一件事是:目前,这是一个NetBeans项目。可能有帮助,也可能没有,我不知道。
我目前在考虑将一个小/中型项目从AWT转换为SWT,但Swing仍未完全排除。我考虑将主窗口转换为SWT_AWT桥接对象,但我不知道这个语义是如何工作的。之后,我计划逐个更新对话框,但不一定在一个版本内完成。这可能吗?
有人做过类似的转换并可以给我一些提示吗?也许有教程可供参考?甚至可能有工具可以自动化部分内容吗?我已经尝试过谷歌搜索,但没有结果。
更新:另外一件事是:目前,这是一个NetBeans项目。可能有帮助,也可能没有,我不知道。
我们正在准备同样的步骤:从Swing转向SWT/JFace。首先,我们尝试确定瓶颈:使用SWT/JFace重新实现派生自JComponent
的特殊组件,寻找JIDE停靠的替代方案(我们想使用SWT/JFace,而不是RCP,以避免太多麻烦)。最糟糕的事情是,在Swing中,您可以创建组件并稍后将其添加到父级中。但在SWT中,这是不可能的:父组件必须作为引用传递给子组件的构造函数。在使用SWT之前,这将需要对Swing应用程序进行重大重构。
坦率地说,我们认为这是一个非常重大的变化,因为我们预计无法编译任何东西的时间会相当长。我们尽可能准备好一切来缩短这个时间,但我们将看看它能起到多大的作用。
2011年4月6日更新:
我们现在将我们的Swing应用程序重构为始终使用其父组件创建组件(与SWT相同)。我们的JFrame
和JDialog
的子类已经重构为只需拥有一个JDialog
实例,以便更容易地切换到SWT的Shell
。同时,我们在SWT中重写复杂的组件。
javax.swing.JFrame
不是一个AWT类... - Powerlord