参考
个人认为:
我认为这几个各有各的好,既然人家开发出来了,到现在都还是主流,这就是最好的证据。
【AWT和SWT】
AWT和swt实现原理是不一样的:AWT控件相当于是一笔一画绣出来的,参加java.awt.Component.paint(Graphics g);而SWT,是调用了操作系统后台原生库,org.eclipse.swt.widgets.Control类型中就没有类似的paint方法了,但是有一个接口org.eclipse.swt.graphics.Drawable。
实现原理的不同带来了性能和用户视觉的差异。
【SWING和JFACE】
SWT的取舍决定了是选择SWING还是JFACE
1、两者的核心作用都是提供了viewer和模型封装的概念,尽管如此,从设计实现上面讲,SWING更加唯美一些,JFACE则更加侧重于实用。
2、SWING和JFACE两者都偏重于行为控制上下文,而对UI数据(例如,一个文本框控件中的内容)的管理都没有做太多的设计。JFACE中略有改进,那就是提供了setData的概念,但是不好用~_~。其实说白了为什么没有做这些的设计,估计是想把自由度开发给开发者,不想做过多的限制,毕竟SWING和JFACE两个框架的核心就是去封装底层控件。这间接给UI测试带来了一些困难,设想如果没一个Dialog都有一个数据池的概念,用户的输入会放入这个数据池,到dialog finish的时候,就从这个数据池中取数据,不再取访问控件去数据,那么这样在UI测试的时候可以更方便的去处理数据,很多时候不用去过多的利用键盘钩子的东东。
3、JFACE是为了Eclipse而生的,虽然后来RCP出来了,又做了其他的包装宣传,典型的体现就是提供了JFace Text Framework和其他一些用户构建Eclipse元素的UI支持。当然,也提供了一些系统资源管理(ImageRegsitry、ResourceManager等)等附加功能。
4、SWING和JFACE都是提供了一个小框架,而且是MVC的不完全实现,并不是旨在解决UI创建的所有问题。当然,SWING相比JFACE来说更优雅一些,更mvc一些.
性能差别:
不同场合使用不同的工具。优劣看你的应用。
核心
我们在接触这些东西的时候,最核心的在于什么。个人感觉如下:
1、基本机理,例如控件如何产生的、事件循环怎样的、涉及到线程问题..
2、SWING和JFACE的MVC思想,本质中的本质。
3、JFACE提供的一些Eclipse特性的东西,例如JFace Text Framework、资源管理等
分享到:
相关推荐
与Java Swing不同,SWT 不依赖Java的抽象窗口工具包(AWT),而是通过本地方法接口(JNI)来直接调用操作系统提供的API。这使得SWT创建的界面在性能上通常优于Swing,尤其是在Windows平台上。 JFace 则是建立在SWT...
基于 Java 桌面程序开发的图形库主要有 3 种,它们分别是 AWT、Swing 和 SWT。用前 两种库编写的桌面程序不够美观而且执行效率低,响应速度慢,SWT 恰好克服了 AWT 和 Swing 的缺点,它丰富的组件可以使程序员开发出...
这与Java的标准GUI库AWT和Swing不同,后者依赖于Java虚拟机,可能会导致性能下降。SWT的优势在于其高效性,因为它直接调用操作系统API,使程序看起来更像本地应用,而不是跨平台的Java应用。 JFace则是在SWT之上的...
SWT的优势在于其高性能和与操作系统原生界面的接近,这使得用SWT构建的应用程序在视觉效果和响应速度上往往优于使用AWT和Swing的程序。JFace则是建立在SWT之上的一层抽象,它提供了一些通用的UI组件和接口,简化了...
2. **性能**:由于SWT直接与操作系统交互,避免了Java AWT和Swing中的额外层,从而提高了GUI的性能。 3. **丰富的组件集**:SWT提供了各种常见的GUI组件,如按钮、文本框、列表、树、表、进度条等,以及对话框、...
首先,SWT是Eclipse提供的一个开源的GUI库,它与Java标准的AWT和Swing不同,SWT直接与操作系统API交互,因此在性能和外观上更接近原生应用程序。SWT提供了诸如按钮、文本框、列表、树等基本控件,以及对话框、菜单和...
- 高性能:SWT 直接利用本地平台的图形资源,因此相比于完全基于 Java 的 GUI 库(如 AWT 和 Swing),它可以提供更好的性能和响应速度。 - 原生外观:由于 SWT 在各个平台上都能呈现原生的外观,因此开发的应用...
它的设计目标是克服Java AWT和Swing库的一些限制,比如性能问题和无法实现完全原生的外观。SWT支持多种平台,包括Windows、Linux和Mac OS X,确保了跨平台的兼容性。 JFace则是建立在SWT之上的高级框架,旨在简化UI...
SWT的设计目标是提供比Java AWT和Swing更快、更轻量级的组件,同时也具有更好的性能和更少的资源消耗。书中会详细介绍SWT的各种控件、事件处理以及自定义组件的方法。 JFace是建立在SWT之上的一层抽象,旨在简化GUI...
SWT是Eclipse项目下的一个开源库,它是Java AWT和Swing之外的一个替代选择。SWT直接与操作系统进行交互,提供高效且原生的UI组件。它弥补了Java UI库在性能和外观上的一些不足,使得Eclipse RCP应用能够拥有接近本地...
基于 Java 桌面程序开发的图形库主要有 3 种,它们分别是 AWT、Swing 和 SWT。用前 两种库编写的桌面程序不够美观而且执行效率低,响应速度慢,SWT 恰好克服了 AWT 和 Swing 的缺点,它丰富的组件可以使程序员开发出...
SWT提供了丰富的控件库,包括按钮、文本框、列表、树等,这些控件可以在不使用Java AWT/Swing的情况下开发出高性能的应用程序。 - **JFace**: JFace是在SWT之上构建的一组高级控件和框架,旨在简化GUI应用程序的开发...
SWT 的设计目标是提供比 AWT 和 Swing 更加原生的外观和性能。SWT 的API 包含了大量的类和接口,如 Shell(顶级窗口)、Composite(容器)、Button(按钮)等,以及用于绘制和交互的事件模型。 JFace 是建立在 SWT ...
【SWT、Swing、AWT 之间的差异】 在Java GUI开发中,SWT(Standard Widget Toolkit)、Swing和AWT(Abstract Window Toolkit)是三种常见的工具包。它们各自拥有不同的特性和优缺点,适用于不同场景。 **AWT...
SWT直接与操作系统进行交互,避免了AWT和Swing的抽象层,因此在性能和本地化方面表现出色。SWT的核心在于它的控件集合,包括按钮、文本框、滚动条等,以及窗口管理功能,如对话框、菜单和工具栏。 JFace则建立在SWT...
Java提供了多种库来支持图形界面开发,包括AWT(Abstract Window Toolkit)、Swing和SWT(Standard Widget Toolkit)。这些库各自有不同的特点和应用场景。 - **AWT**:这是Java最早提供的图形界面工具包,主要通过...
SWT的目的是为了提供比Java AWT和Swing更高效、更原生的外观和性能。SWT 3.5版可能包含了对当时主流操作系统的支持,例如Windows、Linux和Mac OS X。 2. JFace:JFace是在SWT基础上建立的更高层次的抽象层,它简化...
SWT的目标是提供比Java AWT和Swing更快、更轻量级的组件。它的优势在于能够直接利用操作系统提供的功能,从而实现更好的性能和与操作系统更一致的外观。SWT包含了一系列基本的UI元素,如按钮、文本框、表格等,以及...
SWT的设计目标是提供比Java AWT和Swing更高的性能,同时保持跨平台兼容性。在SWT 3.5版本中,开发者可以找到各种控件的API,包括基础控件的创建、事件处理、布局管理以及对话框的使用。 2. JFace:JFace建立在SWT之...