我应该选择SWT或Swing来编程Java中的GUI?

Rom*_*man 8 java user-interface swing swt

我需要用Java创建一个GUI应用程序.我才意识到我有不同的可选方式(其中包括SWT和Swing).

我已经发现有很多关于哪种方式更好的讨论,我不想深入讨论这些讨论(我是新手).

我不关心困境的所有方面.我只是列出了一些主要要求:

  1. 它应该易于使用(易于创建我想要的).
  2. 最后,我想只有一个文件可以轻松执行(没有任何额外的技巧,设置和安装),就像一个独立的应用程序.
  3. 它应该是平台独立的.或者更具体地说,应用程序应该在Microsoft-Windows和Ubuntu(Linux)上正常工作.

pax*_*blo 6

根据你的要求,我会说Swing.SWT有一个更加特定于平台的外观,但Java内置了Swing,与SWT一样没有外部库的混乱,尽管Eclipse的使用可以使这更容易(我仍然开发了很多我的东西)不幸的是命令行).

它们在使用方面都很简单(很容易,一旦你习惯了布局管理员就很容易)并且在你想要的平台下都可以正常工作但是因为你似乎唯一关心的区别是"没有任何额外的技巧,设置和装置",我会坚持使用Swing.

这是我的建议.随意接受或忽略甚至称我为旧老傻瓜.我不会冒犯:-)


Dan*_*iel 6

我刚刚完成了一个为期两年的项目,创建了一个商务应用程序,所以我的重点显然是可用性和速度.

由于以下原因,我最终的决定显然导致了SWT:

  • 商务用户倾向于使用终端服务器和RDP作为他们的应用程序.每个Swing应用程序都比RDP慢很多,因为应用程序必须一次又一次地渲染每个像素.尝试使用Photoshop或Gimp over RDP并开始在图像中滚动.这就是你在表格中使用Swing的表现.
  • 一些非常好的gui组件仅作为COM对象可用.我希望能够使用这些,并且由于100%的所有商务客户都是Windows用户,因此他们接受这样的事实:您的软件仅在Windows上运行.(我们也有Linux客户端,但仅适用于机器输入终端,不需要完整的Windows GUI)
  • 我们使用SWTDesigner作为GUI设计器,它与SwingDesignerfürWwing(它们都是最好的GUI设计者)一样好.如果你必须创造几百个面具,它们是值得的价格标签.
  • 我们的GUI看起来100%原生,尊重他们在桌面上使用的大字体,并且感觉很快.

我们对SWT非常满意,但它有一些缺点:

  • 本机Java组件有点罕见.生命的摇摆方面还有更多.