Java GUI 框架。选择什么?Swing, SWT, AWT, SwingX, JGoodies, JavaFX, Apache Pivot?[已关闭]
Java有很多gui框架,但是今天公认的框架选择是什么呢?
以下是我对不同框架的理解,如果我错了,请纠正我。这是一组定义非常松散的问题,但我仍然认为它对于任何考虑创建丰富的gui应用程序的人来说都很有价值。
是秋千的基础,它表现良好,但缺乏先进的组件。如果您打算创建丰富的应用程序,AWT可能不是要走的路。但是,对于不需要丰富用户界面的小型GUI应用程序。这可能非常适合,因为它是一个久经考验的框架。
如前所述,基于AWT。在它的起步阶段,它被认为是缓慢和有缺陷的,并导致IBM为Eclipse创建SWT。但是使用Java 5(或6?Swing 成为构建新应用程序的首选框架。Swing有很多丰富的组件,但在某些领域仍然缺乏。一个例子是,没有一个功能齐全的TreeTable组件可以进行排序和过滤/搜索。
由IBM为Eclipse创建,他们似乎认为Swing当时不适合Eclipse。它本身是相当低级的,它通过JNI使用平台的本机小部件。它与Swing和AWT完全无关。然而,他们的API有点笨拙,不直观。他们确实有一些高级组件,如TreeTable。(但我不认为他们支持开箱即用的排序和过滤)。SWT使用一些原生绑定(通过JNI?),互联网上的咆哮是这个框架不应该在今天的项目中使用。(为什么不呢?
基于Swing,它的使命是为Swing创建丰富的组件。仍在开发中。(虽然不是很活跃。有一组非常好的组件,例如TreeTable。但是据我所知,TreeTable不支持过滤和排序。但是,它确实支持使用突出显示进行搜索。
请注意,SwingX 是组件 (AFAIU),它们是现有 Swing 组件的扩展或组合
JGoodies
一个我一无所知的框架...它的优势和劣势是什么?Jgoodies与其他组合有什么不同?
JGoodies OTOH是关于PLF和布局的。
Java/Oracle的最新旗舰产品。有望成为开发富桌面或Web应用程序的事实标准。
它使用Java2D渲染UI,从而最大限度地减少了Swing和AWT的遗产(IMO,臃肿)的影响。(@Augustus佘)
它的主要焦点似乎是RIA(富互联网应用程序),但似乎它也可以应用于桌面应用程序。作为个人评论,看起来非常有趣!我特别喜欢它是一个apache项目。
https://cwiki.apache.org/PIVOT/frequently-asked-questions-faq.html
用c / c ++编写的本机qt库的java包装器。非常强大,被广泛使用和接受。具有大量的GUI组件和易于使用的API。
所以,试着总结一下我问的一点:
假设我想今天用Java创建一个桌面应用程序,其中涉及许多高级组件,我应该选择什么?为什么呢?
这些框架中哪一个应该被承认为已弃用,哪些应该被承认为遥远未来的框架?
今天的事实标准框架是什么,您使用哪些工具来创建java gui应用程序?
我可能会后悔问这个,但无论如何我还是会尝试一下:
据说C#/.Net有一套非常好的易于使用的组件,可以在每个可能的方向上弯曲。在在某种程度上研究了不同的Java框架之后,我似乎不能对Java说同样的话。这是为什么呢?为什么java(这是世界上使用最广泛的编程语言)没有相同的GUI组件集?
只是Java将他们的gui组件建立在低得多的水平上,并且可以编写所有这些我正在寻找的高级组件,但是您必须自己做很多工作(如果不是全部工作)?