第5章 图形用户界面
与Java在服务器端,尤其是Web应用开发领域的成功相比,Java在桌面应用开发中的地位一直比较尴尬,没有发展起来。很少有面向普通用户的桌面应用是基于Java平台开发的。Java在桌面应用上比较成功的案例是集成开发环境(IDE)的实现,包括Eclipse和NetBeans等。Java在桌面应用开发中没能流行的原因有很多,其中一个重要的原因在于Java桌面应用的运行离不开Java运行环境(Java Runtime Environment, JRE)的支持,JRE在应用本身之外,需要安装在用户的操作系统之上,这就增加了用户安装和使用的难度。有些Java桌面应用选择把JRE打包在一起,不过这样又会造成安装包过大的问题。还有一个原因是性能方面的影响,由于存在Java虚拟机这样一个中间层,Java桌面应用的性能通常要比原生代码编写的应用差一些,这会对普通用户的使用体验带来不好的影响。
当然,Java桌面应用也并非一无是处。Java平台通过Java虚拟机实现的“编写一次,到处运行”的特性在很多场合都是很有价值的。只需要维护一份代码,就可以在不同的操作系统平台上运行功能相同的桌面应用。进行Java开发也可以充分利用Java平台上丰富的社区资源,包括文档、示例和开源类库等。局域网内部使用的桌面应用很适合于用Java来开发,比如公司内部的管理系统等。桌面应用可以提供比Web应用更强的交互能力。而在内部网中,部署相关的问题也比较好解决。如果既要开发跨平台的桌面应用程序,又能比较好的解决部署的问题,那么Java平台是一个不错的选择。
Java的用户界面组件库在使用上比较简单,只需要熟悉相关组件的API即可。限于篇幅,本章内容不会深入到桌面应用开发的具体细节,不会介绍具体的用户界面组件的用法,只是侧重在Java用户界面库中比较复杂和难以理解的部分,以及Java 7中增加的与图形用户界面相关的新特性。最后着重介绍了Java平台的下一代桌面应用开发技术JavaFX。