AWT

是swing的基础,运行良好,但缺少高级组件。如果您打算创建丰富的应用程序,那么AWT可能不是最好的方法。但是对于不需要丰富用户界面的较小gui应用程序来说。这可能非常适合,因为它是一个久经考验的框架。
摇摆不定的
基于AWT,如前所述。在它的初期,它被认为是缓慢和有缺陷的,并导致IBM为Eclipse创建SWT。但是对于Java 5(或6?)Swing成为构建新应用程序的首选框架。Swing有许多丰富的组件,但在某些领域仍然缺乏。一个例子是,没有一个功能齐全的可以进行排序和过滤/搜索的树状组件。

SWT

由IBM为Eclipse创建的,他们似乎认为Swing在当时并不适合Eclipse。它本身非常低级,并且通过JNI使用平台的本机小部件。它与Swing和AWT完全无关。然而,他们的API有些笨拙且不直观。它们确实有一些高级组件,比如树状结构。(但我认为他们不支持分类和过滤).SWT使用了一些本机绑定(通过JNI?),而internet上的抱怨是这个框架不应该在今天的项目中使用。(为什么不呢?)

SwingX

基于Swing的任务是为Swing创建丰富的组件。仍在发展。(不过不是很活跃。)有一组非常好的组件,例如TreeTable。但据我所知,TreeTable不支持过滤和排序。不过,它确实支持突出显示搜索。

  • 注意,SwingX是组件(AFAIU),它是现有Swing组件的扩展或组合
JGoodies

一个我不知道的框架…它的优点和缺点是什么?Jgoodies有什么不同于其他的?
JGoodies OTOH是关于PLAFs和布局的。

JavaFX

Java/Oracle的最新旗舰。承诺成为开发富桌面或web应用程序的实际标准。

Apache Pivot

它使用Java2D呈现UI,从而最小化了Swing和AWT(在我看来,过于臃肿)遗留的影响。(@Augustus Thoo)
它的主要焦点似乎是RIA(Rich internet applications),但它似乎也可以应用于桌面应用程序。作为个人评论,看起来很有趣! 我特别喜欢这个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组件建立在一个更低的层次上,并且可以编写所有这些我正在寻找的高级组件,但是您必须自己完成大量(如果不是全部的话)工作吗?

Java的GUI框架如何选择? Swing、SWT、AWT、SwingX、JGoodies、JavaFX、Apache Pivot、BeautyEye框架(美观)?的更多相关文章

  1. 十一:Java之GUI图形Awt和Swing

    一. AWT和 Swing AWT 和 Swing 是 Java 设计 GUI用户界面的基础.与 AWT 的重量级组件不同,Swing 中大部分是轻量级组件.正是这个原因,Swing 差点儿无所不能, ...

  2. java的GUI之SWT框架 配置开发环境(包含但不限于WindowBuilder完整教程,解决Unknown GUI toolkit报错,解决导入SWT包错误)

    官网(资料挺多的,API文档截图以及示例都有):https://www.eclipse.org/swt/ 克隆官方仓库 git clone --depth=1 git://git.eclipse.or ...

  3. paip.提升效率--gui 的选择--swing最佳实践swt awt

    paip.提升效率--gui 的选择--swing最佳实践swt awt ////////////////弹出消息框. ////////////////myeclipse swing 开发最佳实践.. ...

  4. Java GUI编程中AWT/swing/SWT的优缺点

    http://www.cnblogs.com/dugang/archive/2010/10/22/1858478.html AWT AWT是Abstract Window Toolkit(抽象窗口工具 ...

  5. java中GUI的awt和Swing的知识点

    刚刚学习了java的GUI,写了几个程序,基本熟悉了awt和Swing,下面和大家分享一下知识点 1.JFrame的层次结构 参考:http://tieba.baidu.com/p/200421612 ...

  6. Java中的Swing及AWT又称GUI编程

    Java中的Swing及AWT又称GUI编程. 关于学习Java要不要学Swing及AWT,这个完全取决于个人的开发及发展方向. 如果从事web方向的开发,则可以不用学习Swing及AWT. 如果从事 ...

  7. 【Java】GUI编程

    GUI编程 前言 某koukou老师的任务罢了,好在狂神老师居然有GUI的课,只能说是有救星了. [狂神说Java]GUI编程入门到游戏实战 最好笑的是,老师要求掌握的居然是14年的知识,就连狂神在上 ...

  8. 用户图形界面(GUI)学习笔记(一)——Swing与AWT

    一.Swing与AWT 对象窗口工具箱(Abstact Window Toolkit,AWT),是JAVA1.0刚出现的时候,包含的一个GUI设计类库.它将处理用户界面元素的任务委派给每个目标平台(W ...

  9. Java面向对象 GUI 补录

     Java面向对象 GUI 补录 知识概要:(1)GUI和CLI                   (2)AWT和SWING                   (3)AWT继承关系图      ...

随机推荐

  1. docker简单理解

    Docker是开源的一个基于轻量级虚拟化技术的容器引擎项目.它通过分层镜像标准化和内核虚拟化技术,使得应用开发者和运维工程师可以以统一的方式跨平台发布应用,并且以几乎没有额外开销的情况下提供资源隔离的 ...

  2. 第七周学习总结&JAVA实验五报告。

    JAVA实验报告五: 实验四 类的继承 实验目的 理解抽象类与接口的使用: 了解包的作用,掌握包的设计方法. 实验要求 掌握使用抽象类的方法. 掌握使用系统接口的技术和创建自定义接口的方法. 了解 J ...

  3. php_network_getaddresses: getaddrinfo failed

    在使用 file_get_contents远程请求url时,出现警告:php_network_getaddresses: getaddrinfo failed: Name or servicenot ...

  4. 一、基础篇--1.2Java集合-List、Set、Map区别

     List.Set.Map区别 三者关系如下: 结构特点 1.List和Set是存储单列数据集合,Map是存储键值对这样的双列数据集合: 2.List中存储的数据都是有序的,并且允许重复:Map中存储 ...

  5. android 给控件使用自定义字体Typeface

    第一步:将字体资源放在assets 资源文件夹下: 第二步:获取字体资源 Typeface mTf = Typeface.createFromAsset(c.getAssets(), "Op ...

  6. 代码实现:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字

    import java.util.Scanner; /*题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字. 例如2+22+222+2222+22222(此时共有5个数相加), ...

  7. <table>表格与jqGrid

    第一次写博客比较生涩.接下来进入正题:...... 普通表格前端的增删改查. <%@ page language="java" contentType="text/ ...

  8. 阶段3 3.SpringMVC·_01.SpringMVC概述及入门案例_02.SpringMVC框架的介绍

    Spring MVC 的入口是 Servlet, 而 Struts2 是 Filter Spring MVC 是基于方法设计的,而Struts2是基于类,Struts2每次执行都会创建一个动作类.所以 ...

  9. ffmpeg 视频过度滤镜 gltransition

    ffmpeg 视频过度滤镜 gltransition 上次随笔中提到的 ffmpeg-concat 可以处理视频过度,但是缺点是临时文件超大. 经过查找 ffmpeg 还有 gltransition ...

  10. runoob_Java 方法

    可变参数 JDK 1.5 开始,Java支持传递同类型的可变参数给一个方法. 方法的可变参数的声明如下所示: typeName... parameterName 在方法声明中,在指定参数类型后加一个省 ...