Java SWT

SWT Web
http://www.eclipse.org/swt/
http://www.eclipse.org/swt/snippets/


SWT: Managing Operating System Resources
http://www.eclipse.org/articles/swt-design-2/swt-design-2.html
(Dispose) http://www.newsmth.net/nForum/#!article/Java/23854
          http://www.blogjava.net/280211429/archive/2006/10/17/75686.html


Eclipse MAT 可以分析Java层的memory situation/leak
http://eclipsesource.com/blogs/2013/01/21/10-tips-for-using-the-eclipse-memory-analyzer/
http://ju.outofmemory.cn/entry/204399

http://www.2cto.com/os/201409/335118.html



AWT:
Abstract Window Toolkit,是 API为Java程序提供的建立图形用户界面GUI工具集,基于一个对等体实现的。
AWT可用于Java的applet和applications中
包括: 用户界面组件;事件处理模型;图形和图像工具,包括形状、颜色和字体类;布局管理器,与特定窗口的尺寸和屏幕分辨率无关;数据传送类,可以通过本地平台的剪贴板来进行剪切和粘贴。


Swing:
Swing基于AWT架构之上,不改变大量的程序代码前提下允许程序中每个组件观感的变化。支持可更换观感技术的引入允许Swing组件在模拟原生组件外观的同时又保持了平台独立的优点。


SWT:
Standard Widget Toolkit,现由Eclipse基金会维护。
独立于平台的,基于对等体实现,可以脱离 Eclipse 框架单独使用,用JNI技术提供与本机系统同样的用户界面组件观感,较好的运行效率,稳定的平台表现。










AWT、SWT依赖底层平台,基于对等体实现,在不同系统上开发出来的程序显示效果不一样,SWT提供比AWT更为丰富的组件集;
而Swing对底层平台的依赖很少,给不同用户一致的感觉。


由于AWT和SWT都持有对本地组件的引用,它们必须以正确的方式释放这些引用以避免内存泄露和JVM崩溃。
AWT将绝大多数资源管理任务交给系统,不过这使得AWT的实现复杂化了。一旦它实现了,开发者很少有机会犯错误并使他们的程序崩溃。
而SWT是采用另外的方法,它有一条法则就是:谁创建,谁释放。因此开发者必须谨慎地显式调用dispose方法释放每一个由他创建的组件和资源。这虽然简化了SWT的实现模型,但把开发者摆在了因错误编码而易于造成程序崩溃这一风险之上。


awt只提供所以操作系统都有的控件,即全部调用的是本地操作系统的控件;
Swing只是窗口和框架等的顶层的组件调用操作系统控件,大部分都是使用java代码来模拟的;
swt大部分是用的本地操作系统的控件,有些在别的操作系统的控件要经过自己的绘制。


Swing和SWT都在实现上都使用模拟。SWT是模拟平台上缺失的组件。区别是SWT的模拟更像是AWT的Canvas实现的模拟。


Swing组件在操作系统中没有相应的对等体。它只是一块顶层容器中的逻辑区域,实际上它从顶层容器的对等体中借用资源。Swing的事件并不是底层系统产生的事件。它们实际是由顶层容器处理AWT事件所产生的伪事件。另一个不同之处是Swing组件的z-order系统是来自于AWT组件的。Swing是基于awt的架构之上的

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值