Java GUI框架 – 哪些在那里?

我主要开发Java EE,现在我需要编写一个小的本机Java应用程序。

但是,我有点迷失,哪些框架(Swing,SWT等)在那里? 其中一个还有一些快速开发吗? 也许有人可以提供一些链接或分享他的经验。

摇摆和SWT是两个主要候选人,是的。 JavaFX也浮现在脑海中,但我认为它尚未准备好迎接黄金时段:它没有值得谈论的UI编辑工具很长一段时间,我在现实生活中所知道的唯一的企业UI原型是一场惨败……

Swing和SWT是你可能想到的两个。 Swing的基本优势是:

  • 更多平台独立
  • 在性能方面更加一致
  • 更好的免费UI设计器(NetBeans)
  • 非常灵活
  • 可以在JavaFX中使用

SWT的优势是:

  • 更简单的API
  • 尽可能使用本机UI小部件(UI与同一环境中的其他应用程序更相似)
  • 在某些时候,有人认为它比Swing更快,尽管这只是在Windows上

( NetBeans平台和Eclipse RCP )都存在相当先进的富客户端框架,如果您打算构建任何非平凡的东西,我衷心建议您使用以下方法之一:您获得模块化应用程序,更新机制,上下文相关帮助,一致性对菜单,热键和工具栏,窗口管理以及许多其他优秀function的免费操作。

我使用Swing并且喜欢它而不是SWT,因为它有一个更纯粹的组件模型(使用SWT你必须担心释放资源,因为你使用的是本机小部件),是真正的多平台(SWT适用于Windows,MacOS和Linux) ,并且甚至没有针对所有三个进行优化,并且它更加可定制。

你可能在尝试SWT甚至是JavaFX时都没有犯错,但是我很难找到一个很好的理由转而使用SWT并且只会尝试使用JavaFX来检查最新技术,假设应用程序只是一个展示应用程序。

我可以撒上几个链接,但你可以轻松搜索自己并找到比你感兴趣的结果。

还有一些不是用Java编写的GUI框架可能会满足您的需求。 例如,GTK +是用C语言编写的,但是有Java语言绑定。 以java-gnome为例。

我不知道它有多好,但是快速的谷歌搜索也为Qt打开了Java绑定,所以也许这也值得研究。

我有类似的事情要做一会儿。 我最终选择了Swing App Framework,因为它并不试图成为一个统一它们的框架。

最后我写了一个小应用程序,没有任何惊喜,代码结果非常干净(包括在ackground任务中上传),客户很高兴,我很高兴。

它的目的是提供(从模糊中窃取)

  • 应用程序生命周期,特别是GUI启动和关闭。
  • 支持管理和加载资源,如字符串,格式化消息,图像,颜色,字体以及桌面应用程序常用的其他类型。
  • 支持定义,管理和绑定操作,包括异步运行的操作(在“后台”中)。
  • 持久会话状态:支持从一次运行应用程序到下一次运行时自动选择性地保存GUI状态。

这正是我所需要的。

警告:在这个框架中似乎没有什么生命,因为有传言说驱动力已经让Sun / Oracle退出了一段时间。

更新:一些开发人员以“更好的Swing应用程序框架”的名称在Project Kenai中分叉。 所以毕竟可能有死后的生命

看看Apache Pivot 。 它意味着比普通的Swing更高级更现代的框架,它仍然使用Java而不是一直到JavaFX。 它将自己定位为RIA工具包,但它可以很容易地用于独立的桌面应用程序。 来自网站:

Apache Pivot是一个用Java构建富Internet应用程序的开源平台。 它结合了现代RIA工具包的增强的生产力和可用性特性以及Java平台的稳健性。 数据透视表应用程序是使用Java和XML的组合编写的,可以作为applet运行,也可以作为独立的,可选的脱机桌面应用程序运行。 […] Pivot包含的其他function使构建现代GUI应用程序变得更加容易,包括声明性UI,数据绑定,效果和转换以及Web服务集成。

我认为JavaFX是一个不错的选择,因为它具有良好的用户界面和Swing的所有function

免费的NetBeans IDE为Swing和JavaFX提供了可视化布局工具。

GWT也可以作为基于java的应用程序的优秀UI工具。由于GWT中的代码与Java代码相同。另一个是GWT自己的处理浏览器兼容性。它具有丰富的小部件工厂,国际化,安全性和更多function。

我建议不要使用布局工具; 代码很难阅读和维护。

此外,如果您需要对对象进行数据库访问,那么如果您的应用需要使用多个线程,netbeans将使实体管理器保持打开状态并在以后产生严重的麻烦和错误。