10

哪个库更适合更快的 Java 应用程序 swt 或 swing?

4

7 回答 7

14

几年前,Swing 速度很慢,因此开发了 SWT 以在系统上进行本机 API 调用。然而,Swing 的性能有了很大的提高,现在情况已经不是这样了。SWT 是非标准的,而 Swing 是 Java 规范的正式一部分。JavaFX 也将构建在 Swing 之上。除非您的工作需要编写 Eclipse 插件,否则我会使用 Swing。

要查看使用 Swing 开发的真正优秀的应用程序,请查看 Jetbrain 的 Java IDE。您可以试用 30 天。

http://www.jetbrains.com/idea/

当然,Sun 的 Netbeans 也是一个纯 Swing 应用程序,而且它是免费的。

http://www.netbeans.org/

于 2008-10-12T23:04:59.637 回答
9

没有缓慢摆动的应用程序。只是写的不好。这也适用于 SWT。由于 Eclipse 核心架构,大多数应用程序做出了更好的响应。在 J6 之前,在无响应期间存在灰色窗口的几个问题,但在摆动 PLAF 中使用完全双缓冲方法完全解决了这个问题。没有更好的 UI 框架。只有更好的编写程序可以适当地使用多线程来避免 UI 无响应。我个人更喜欢 Swing :)

于 2008-10-13T22:07:41.813 回答
8

今天,这两个框架都很快。我建议检查这些标准:

  1. SWT 比 Swing 更易于使用(尤其是如果这是您的第一个 UI)
  2. Swing 比较老,可以找到更多组件
  3. 如果您还使用 JFace,您会发现许多开箱即用的强大小部件(您需要在 Swing 中进行大量额外配置)。
  4. Swing 随处可用,SWT 不可用
  5. SWT 是积极开发的,你有源码,bug 会很快修复。Swing 已经好几年没有被触及了,然后突然出现了 Java 6 的重大更新。如果您对 Swing 有疑问,那么 Sun 可能不在乎。
  6. 如果您选择 Swing,请使用SwingX 之类的框架。这将使您的生活更加简单。
于 2008-11-06T15:28:33.750 回答
4

根据维基百科,没有明确的赢家(尽管您可以根据需要进行编辑)。不可避免地,您可以编写基准测试来显示其中一个比另一个快得多。Swing 在 Java 方面有更多的自由来优化。SWT 可以允许在窗口系统中进行更多优化。

可能对性能的更大影响将来自您的应用程序的行为方式。专注于让你的代码干净(并在必要时进行一些分析)。

于 2008-10-12T21:01:46.797 回答
1

“更快”是主观的。两者都可以跑得很快,但是用 Swing 做一些愚蠢的事情来击中自己的脚并让它感觉慢更容易。

尽管如此,我发现在代码级别上使用 Swing 比使用 SWT 更容易。

于 2008-10-16T06:07:43.527 回答
0

对小部件工具包的技术决策在我看来是薄冰。恕我直言,当涉及到应用程序框架时,您必须交付的工作量相当大,而且更具决定性。我相信唯一支持 SWT 的论点是它是原生的 L&F。另一方面,如今大多数 UI 都倾向于非本地 L&F。您在 Eclipse RCP 应用程序使用表单框架的趋势中清楚地看到了这一点,该框架绘制自定义渐变和部分,并且以任何方式都不是本机界面(这同样适用于 e4,eclipse v4 细化项目)。总而言之,如果 RCP 在您的项目中是一个选项,我会使用 Eclipse RCP(即 SWT)。这个平台的完整性、活力和节奏是无与伦比的。如果不能选择 RCP,那么 Spring RCP 对我来说看起来非常有说服力(它是基于 Swing 的)。

于 2009-12-14T15:16:08.393 回答
-2

多年来,使用 swing 编写的应用程序比使用 SWT 编写的应用程序多。但是SWT在windows上的用户友好性比Swing更胜一筹。但是,也有例外(http://www.amazon.com/Rich-Client-Programming-Plugging-NetBeans/dp/0132354802)。

有一个更大的使用 SWT 开发的 RCP 应用程序社区。尽管使用 Netbeans 的 RCP 应用程序没有那么大,但这是相当可观的。

随着 Java 6 UPDATE 10 即将推出,Swing 应用程序的性能应该会相当不错。也就是说,性能改进也可能适用于 SWT 应用程序。

BR,
~A

于 2008-10-12T21:09:22.693 回答