Java GUI框架。选择什么?Swing,SWT,AWT,SwingX,JGoodies,JavaFX,Apache Pivot?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意测验或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 有很多针对Java的gui框架,但是公认的当今选择框架是什么? 以下是我对不同框架的理解,如果我错了,请指正。这是一组定义非常松散的问题,但是我仍然认为这对任何想创建丰富的GUI应用程序的人都非常有价值。 AWT 是挥杆的基础,它的性能不错,但缺少高级组件。如果您打算创建功能丰富的应用程序,那么AWT可能不是走的路。但是对于不需要丰富用户界面的小型GUI应用程序。这是一个久经考验的框架,因此可能非常适合。 摇摆 如前所述基于AWT。在起步阶段,它被认为是缓慢且容易出错的,并导致IBM为Eclipse创建SWT。但是,使用Java 5(或6?),Swing成为构建新应用程序的首选框架。Swing具有很多丰富的组件,但在某些方面仍然缺少。一个例子是,没有一个功能齐全的TreeTable组件可以进行排序和过滤/搜索。 SWT 由IBM为Eclipse创建的,他们似乎认为Swing当时不适合Eclipse。它本身是相当低级的,它通过JNI使用平台的本机窗口小部件。它根本与Swing和AWT不相关。但是,他们的API有点笨拙而且不直观。它们确实具有一些高级组件,例如TreeTable。(但我不认为它们支持开箱即用的排序和过滤)。SWT使用一些本机绑定(通过JNI?),互联网上的喧嚣声是该框架不应在当今的项目中使用。(为什么不?) 秋千 基于Swing,其任务是为Swing创建丰富的组件。仍在开发中。(尽管不是很活跃。)具有一组非常好的组件,例如TreeTable。但是据我所知,TreeTable不支持过滤和排序。但是它确实支持突出显示搜索。 请注意,SwingX是组件(AFAIU),是现有Swing组件的扩展或组成 嘉迪 我一无所知的框架...它的优点和缺点是什么?Jgoodies与其他产品有什么不同? JGoodies OTOH是关于PLAF和布局的。 JavaFX Java / Oracle的最新旗舰。有望成为开发丰富桌面或Web应用程序的事实标准。 阿帕奇枢轴 它使用Java2D渲染UI,从而最大程度地减少了Swing和AWT的(IMO,肿的)遗产影响。(@Augustus Thoo) 它的主要焦点似乎在RIA(丰富的Internet应用程序)上,但是它似乎也可以应用于桌面应用程序。作为个人评论,看起来非常有趣!我特别喜欢这是一个Apache项目。 https://cwiki.apache.org/PIVOT/frequently-asked-questions-faq.html Qt Jambi 用c / c ++编写的本地qt库的Java包装器。非常强大,被广泛使用并被接受。具有大量的GUI组件和易于使用的API。 http://qt-jambi.org/ 因此,尝试总结一下我在问什么: 假设我今天想用Java创建一个包含许多高级组件的桌面应用程序,我应该选择什么?又为什么呢 这些框架中的哪一个应该被认为已过时,哪些应该被认为是遥远的未来? 当今的事实上的标准框架是什么,您将使用哪些工具来创建Java GUI应用程序? 我可能会后悔提出这个问题,但无论如何还是会尝试: 据说C#/。Net具有一组非常好用的组件,可以在各个方向上灵活应用。在某种程度上研究了不同的Java框架之后,我似乎对Java并没有说同样的话。为什么是这样?为什么Java(世界上使用最广泛的编程语言)没有相同的GUI组件集? 难道Java只是在较低的基础上提供了gui组件,是否有可能编写我正在寻找的所有这些高级组件,但是您必须自己做很多工作(如果不是全部的话)?