资源说明:在本书刚开始计划写的时候,选的书名是《MyEclipse 6 Java EE 开发中文手册》,后
来才改成了现在的这个名字:《MyEclipse 6 Java 开发中文教程》。这是因为 Java的覆盖面
要比Java EE 大些,Java的开发也不是除了做做网页(一般加以专业称呼为 Java EE 开发),
而且考虑到实际情况,在一般公司中经常出现维护老项目的现象,如果是在校学子做毕业设
计,也会用到一些目前来说不是太“主流”的技术,在Java中,经常就是指图形界面开发。
那么图形界面开发到底在实际中有没有用?回答是肯定的:有!大家想想,打开Windows
后看到的是什么?窗口!那就对了,所有这些都是图形界面应用。IE 浏览器本身,也是个
带界面,能够用鼠标键盘操作的图形应用。至于游戏,那就是专门主攻图形学的带界面应用。
绝对上讲,没有界面的应用是不存在的。界面是电脑和人脑沟通的窗口。类似于DOS,Linux
那样的命令行的,叫文字界面。其它所有带有窗口,一般支持鼠标,键盘,手柄等的,都属
于图形界面。至于 Java的开发,所用到的开发工具,例如 JBuilder ,Eclipse,MyEclipse,
Netbeans,无一不是图形界面的应用。但是长期以来,由于种种原因(我想其中最重要的
原因大概是速度,内存占用和系统集成度),图形界面一直没能成为 Java 开发的主流,尤
其在国内,做JSP 成了 Java开发的代名词,但是国外的情况好很多,出现了很多基于Swing
的优秀软件。我想国内的电脑普遍配置过低也是个很重要的因素。但是,这并不影响Java
图形界面的应用广度,很多项目,尤其是比较综合的项目,都还是用到了图形界面的开发,
例如Applet 技术,客户端软件,以及最近非常流行的Eclipse 下的SWT/JFace/RCP(Rich
Client Platform,富用户客户端平台)软件开发,它们都是图形界面的软件。而且,在公司,
很多老项目,可能是用Applet 搭建,或者是完全用Swing 实现的,这时候,您都不得不维
护它,因为客户用习惯了一样东西后,是很难再做改变的,例如笔者此前就职的那家外企,
就有大量的Swing 应用。至于做算法的,一般也都会和一些界面结合起来,制作一些Demo
应用。如果是图形相关的,那更是100 %要做界面了,虽然Java中的图形算法由于虚拟机
本身的原因执行效率低一些。
Java中的图形界面系统和JVM 一样,也是分为四个层次(大致的划分,并未参考权威
的资料):操作系统图形设备层 > 虚拟机本地代码层 > Java 封装层 > 用户应用层。由于
画图依赖操作系统的功能,所以,在一些服务器上,例如没有安装XWindows 系统的Linux
服务器,不能执行图形界面应用。又由于 Java的图形界面采用了最大公约数的做法,所以
和底层的语言例如C++相比,其功能总是感觉少,例如托盘功能(桌面最右下角的那部分
区域),也是最近才加入的(JDK1.6 支持)。虚拟机本地代码层体现在大量的 DLL 文件上,例
如jre/bin/awt.dll ,就是 Java的AWT类的C 代码的封装,所有的键盘和鼠标操作,都通过
它来进行(换句话说纯Java 是做不到的)。使用微软的 VC++ 中提供的一款工具
Dependency Walker ,可以看到其中的 DLL 中封装的函数列表,如图 18.1 所示。所以一般
对Java访问系统级功能的操作,例如访问注册表,都需要额外使用 C++ 代码来实现,一般
也不跨平台,这也是 Java的图形界面开发一直没能流行开来的一个原因,甚至于现在出现
了Eclipse力挺的 SWT,这样的局面还是依然不能结束
本源码包内暂不包含可直接显示的源代码文件,请下载源码包。