插件项目的 SWT 或 Swing
Posted
技术标签:
【中文标题】插件项目的 SWT 或 Swing【英文标题】:SWT or Swing for Plugin Project 【发布时间】:2011-03-12 22:08:51 【问题描述】:我正在创建一个插件项目,该项目将包含一个菜单和工具栏项,当单击它们时,将打开一个用于用户交互(输入、搜索等)的对话框。我应该使用 SWT 还是 Swing 创建对话框?
【问题讨论】:
它用于将 Code Barrel (www.codebarrel.com) 集成到 Eclipse 中。我们已经创建了 Visual Studio 插件,接下来是 Eclipse 插件。我现在正在收集关于如何最好地开发插件的信息阶段。 【参考方案1】:在 Swing 中执行此操作的一个优点是您不必提供任何其他库,因为 Swing 是 JRE 的一部分。使用 SWT,您必须这样做,并且必须为特定平台提供单独的 dll。 更新: 既然您提到您必须创建 Eclipse 插件,我认为您在这里有一个明确的选择 - SWT。它是 Eclipse 的基础。
【讨论】:
我绝对同意这两个想法【参考方案2】:与@eugener 一样,我更喜欢Swing 而不是SWT,但两者都是丰富、维护良好的框架,可以达到目的。 NetBeans 和 Eclipse 是广泛使用的示例。流行平台的 SWT 二进制文件并不难集成。 The SWT FAQ 可能会提供一些观点。
您需要some other criteria 来决定。
【讨论】:
【参考方案3】:由于您将 Code Barrel 集成到 Eclipse 中,并且 SWT 是 Eclipse 项目的一部分...
实际上,您应该查看Eclipse Plug-in Architecture 并了解它是如何工作的。
【讨论】:
如果这是一个 Eclipse 插件,那么您最好使用 SWT。作为 Eclipse 用户,我绝对反对使用 Swing 的插件,因为它看起来不像应用程序的其余部分。此外,您还需要查看其他插件(尤其是那些属于 Eclipse 平台的插件),因为您会发现可以为您完成大部分工作的抽象对话框类,并将帮助您的插件看起来像是属于 Eclipse 的。深度集成是确保您的插件值得安装的关键。【参考方案4】:SWT。
关于 Swing 和 SWT 优点的争论是无关紧要的。您的插件将与基于 SWT 的平台集成。使用相同的用户界面工具包将简化您的开发和测试,并产生更好的结果。
在某些情况下,在 Eclipse 中使用 Swing 很有用,例如,当您有一个无法移植的现有代码库时。有一个 SWT/AWT 桥;我没用过。
【讨论】:
我已经用 Swing 构建了一个 Eclipse 插件,但由于 SWT 和 Swing 中的异常不同,我对此决定感到遗憾。很难解决问题。 @Mishax - 写完这个答案几年后,我尝试引入一个基于 Swing 的 2D 可视化面板。我使用了 SWT/AWT 桥,在 eclipse.org/articles/… 提供了一个附加层。两个 UI 工具包之间的交互仍然有一些用户可见的粗糙边缘。并非在所有操作系统上都可以看到一些粗糙的边缘。我最终在 Eclipse Draw2D 中编写了自己的可视化。对我来说,必须有一个令人信服的理由来考虑在 SWT 应用程序中使用基于 Swing 的组件。以上是关于插件项目的 SWT 或 Swing的主要内容,如果未能解决你的问题,请参考以下文章
java在线聊天项目 使用SWT快速制作登录窗口,可视化窗口Design 更换窗口默认皮肤(切换Swing自带的几种皮肤如矩形带圆角)