Java 版 (精华区)
发信人: allen (夏夜晚风·原来的我), 信区: Java
标 题: [蔡学镛][Learning Java the O'Reilly's Way] 8
发信站: 哈工大紫丁香 (2002年08月21日00:50:26 星期三), 站内信件
发信人: NullPointer (宁与骐骥亢轭,不随驽马之迹)
发信站: BBS 水木清华站 (Sun Jun 30 19:23:58 2002)
Learning Java the O'Reilly's Way (Part VIII)
Java Swing
现代的程序中,图形化的使用者接口(GUI)相当重要,良好的
GUI可以让程序更具吸引力、更好操作、更容易学习。虽然Java
早就有 AWT,可以用来设计 GUI,但是 AWT 有两大缺失:
太阳春:AWT 只提供最基本的组件(比方说:按钮、滚动条等)
,而不提供 TreeView 等现代化GUI组件。更糟的是,AWT 的组
件还只提供最基本的功能,比方说:按钮上面只能出现文字,不
能出现图形。(当然,你也可以利用继承的方式来设计出图文兼
容的按钮,但这还要花不少额外的时间。)
不能跨平台:AWT透过「同侪系统(peer system)」来和操作系
统沟通。每个使用者接口的对象都有一个对应的「同侪对象(peer
object)」,用来管理操作系统所提供的真正使用者接口对象。
比方说:如果你建立一个按钮(Button)对象,就会有一个按钮同
侪(ButtonPeer)对象一请被建立,此按钮同侪对象会请底层的操
作系统建立一个真正的按钮。 如果此程序是在 Windows 98 上执
行,所建立的按钮自然是 Windows 98 的按钮。AWT组件的外观就
会受到底层操作系统的影响。
正因为 AWT 的这两大缺点,所以许多软件组件厂商纷纷推出它们
的GUI组件库。比方说,Inprise/Borland的JBCL,KL Group 的
JClass。使用这些协力厂商的 GUI 组件产品固然解决 了AWT的两
大问题,但是因为非标准API,所以必须随着软件的发行而附上,
不但组件使用授权需要额外的花费,使得软件成本上升,而且软件
体积也因此变大许多。
如果能有一套免费、统一、完善、又可跨平台的 GUI 组件库的话,
那该有多好!
Swing 正是这样的产品,它是由 Sun 公司研发设计。有了 Swing
,上述的问题都迎刃而解。Swing 不但填补了 Java GUI 不能跨
平台的缺点,也提供许多新的组件,可以用来组合出 复杂的使用
者接口,除此之外,Swing为Java注入新的特色,支持包括了拖放
功能(drag-and-drop)、复原(undo)、并允许使用者改变 GUI
的外观(look and feel).Swing 组件都是「轻量级的(lightweight)
」(注:前述的 Inprise/Borland 的 JBCL,KL Group 的J Class
也都是轻量级组件)。
Swing 提供了这么多特色,所以我们该学的东西也不少,Swing 比
AWT 复杂许多,想直接透过 Java Swing API 的文件来学习如何将
Swing 完全驾驭得宜实在不太可能 (比方说:JTable、JTextPane
、和 Look-and-Feel 这么复杂的东西,我不相信有人光靠Swing
Javadoc简单的说明就能操控自如)。我们需要一本好的 Swing
书籍,除了教学功能, 也要能当 API 速查手册。
由 Robert Eckstein、Marc Loy、和 Dave Wood 合着的《Java
Swing》深入地涵盖了Swing 的一切,也正因为如此,它的厚度
高达 1,200 页。本书以 Swing 大架构的解说为开始, 接着分
门别类、由浅而深地介绍 Swing 的每个类别。O'Reilly的书向
来附图不多,但本书可以算是个异数,不但有许多类别继承图,
更有不少示意图和GUI的画面。本书还有许多表格、 详细地列
出类别的 method 和 field。由于 Swing 组件一般都是搭配
RAD 工具(例如 JBuilder、VisualAge for Java)来当作 bean
使用,所以这些表格还贴心地标出 get、set、is、 这些和bean
access 相关的 method。本书也有不少范例,让读者可以马上知
道相关用法。除了利用本书来学习 swing 之外,本书也相当适
合当作案头查阅书,我把它放在计算机桌旁 随手可及的地方。
就像 Windows 有一些未公开的 API,Swing 也一样,本书辟一个
章节告诉你这些好用的API(比方说 timer)。另外,如果你对
Swing 内部运作原理感兴趣,本书也有一章完整的说明。这些内
容在其它书并不容易看到。
除了介绍一般的 Swing 之外,本书也涵盖了Look and Feel、
Accessibility、Undo。本书关于 Look and Feel 的部分写得
尤其精彩。但是,请注意:本书不包含 Drag and Drop。
你还是觉得无法随心所欲地控制 Swing 的某些组件吗?你需要
看看这本书,你会发现,其实 Swing 没什么好怕的。
--
那是一个充满幻想的梦境,
梦虽然很长,不变的是梦的结局——醒来。
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 218.7.25.106]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:3.596毫秒