Java对于服务器,个人电脑和移动设备来说是一项伟大的技术.由于需要java的跨平台的特性,因此java在服务器和移动设备方面的应用是非常成功的。但java在个人电脑应用方面的情况和在服务器及移动设备方面的应用有所不同,但是这很快就会有所改变,至少比你想象得要快。在这篇文章中,我会分析一下java在桌面环境中的应用将怎样得到提升,然后具体说一下java GUI(用户图形接口)的三个主要的工具:AWT, Swing, 和SWT.。在下文中,我将会开发一个完整的java桌面应用程序.
Java与桌面端
现在,流行的桌面平台要数Windows、Mac、and Linux了。但它们不是十全十美的,Windows主宰着桌面操作系统的市场,其上有巨大的应用和开发群体,但它昂贵且有许多安全漏洞。Linux有着稳固的基础,它是开源的软件,比Windows更可靠。Macs非常容易操作且不是黑客的目标,但与Windows和Linux比起来,Mac的硬件和软件可选的余地非常的有限。公司和个人选择他们的操作系统基于许多因素。花费少且安全性高是首选的因素,这导致一些组织从Windows 系统转而选择Linux。对许多用户来说,可用性及对原有应用程序的支持是非常重要的因素,这意味着Windows 将继续享有巨大的市场。Mac有其自己忠诚的用户,这使得苹果机仍然可以存活,Linux 在桌面的流行及Mac的成功创造了多样性,这种多样性正是Java需要的,这种多样性使得Java在桌面有举足轻重的地位。
跨平台的支持
Java 运行于所有相关的操作系统,包括Windows、 Mac和Linux。对于任何组织,他想把现有的应用从一个操作系统移植到另一个操作系统而不用做太多的改动,那么Java正是他们首选的桌面开发平台。或许用微软的可视化工具很容易构建.NET应用,但是这将使你被绑定在了Windows平台上了。 很多人也许想立刻用Linux 代替Windows 从而避免由微软件操作系统的漏洞带来的问题。用户不能容忍的问题之一是当从Windows移植到Linux带来的巨大的费用。如果你的应用程序用Java构建,你就没有了这些问题,Java的图形用户界面看上去会跟你用的操作系统一样,而并不需要做什么改动。 假如有一天又有一种桌面操作系统出现的话,java 是个安全的赌注,因为它现在能够运行在Windows和Linux 上,那么可以推测它也可以运行在将来可能出现的操作系统上,这些操作系统可能或迟或早地由微软,或是开源社区,或是其它的人开发出来。
丰富的特征
最初,Java只有非常有限的一些特征去构建图形用户界面。思想就是用平台无关的Java应用程序接口打包不同的操作系统的本地图形用户界面,称之为抽象的窗口工具。仅有普通的部件如文件域、文本区、选择框、单选按钮、列表框和按钮被AWT支持,图形和图像的特性支持非常有限,也就是说,只足够构建简单的applet程序。 认识到需要更高级的图形用户界面组件和图形能力,Sun公司开发了Swing,Java 2D,Java 3D,图像的输入/输出,Java高级图像(JAI)和很多其它的。这些中的一些窗体组件现在已经是Java 2标准版(J2SE)里的一部分,并且其它的一些扩展必须和你的应用程序打包在一起。例如Swing、Java 2D、图像的输入/输出都是Java的核心API,随着Java开发工具包(JDK)和Java运行环境一起提供。让我们不要忘了J2EE平台。如果你开发服务器端的应用程序并且需要丰富的图形用户界面,那么你毫无疑问应该选择Java。这允许你把服务器端的一些代码移到客户端,反之亦然。例如:一个项目可能开始是基于WEB和图形界面,在某些时候,用户可能要求图形元素不能在HTML中实现,如果你选择java做客户端应用,那么你可以重用这些当初用来做服务器端的代码。如果你用远程调用,一些类会真正地实现服务器和客户端的共享。通过页面服务器,Java桌面应用也能够和其它的Java 或非Java应用程序通信,如CORBA, TCP/IP,或是 HTTP。