界面设计中的LCD 问题,兼讨论AWT,Swing,SWT的用途

几乎所有的 GUI工具包都要面临这个问题。这里的LCD可不是液晶显示器。LCD是“最小公分母”(Lowest Common Denominator)的缩写。说的有些含糊,我也懒得去查为什么会叫这个名字,但是知道LCD表示什么问题就行了。

这个问题就是:GUI工具包仅支持存在于所在平台上的窗口构件。例如AWT对Windows是没问题的,AWT在Windows上可以支持tree(树型控件、列表控件等),但是因为 Motif 没有提供本机树型窗口构件,AWT 就没有包含树型窗口构件。

Swing则走向了另一个极端。虽然带有一个很出色的 API 进行优雅地设计,Swing 还是自己实现窗口构件。因此 Swing 不依赖于操作系统提供窗口构件。无论本机是否支持,这都为 Swing 提供了不可思议的灵活性。但是,因为 Swing 自己绘制这些窗口构件,所以最终的外观看起来与本机应用程序有明显的不同。并且,由于要自己绘制这些构件,Swing的效率也较低。

SWT 试图弥合这两个 GUI 工具箱之间的差距。它的方向是:“如果在所在的OS上有本机窗口构件就使用它。如果没有,就模拟它。”前面提到的树型窗口构件就是这样一个示例。因为 Windows 支持本机树型窗口构件,所以在 Windows 上运行时,SWT 就使用它。但是,Motif 不支持树型窗口构件,因此 SWT 在 Motif 下运行时绘制其自己的窗口构件版本。使用 SWT,结果应用程序看起来与其本机的同类应用程序很相似,因为尽可能地使用了本机窗口构件。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值