Java桌面应用程序开发简介

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。

Java图形界面工具

Java有三个主要的图形界面工具:AWT,Swing和SWT。Swing 是构建java图形界面标准的API(应用程序接口),一些AWT类由Swing基础而来。SWT是一个非常有前途的新的窗体工具,由IBM资助。但是事实上,这三者相互补充,他们满足不同的需求。

AWT

抽象窗口工具集为简单的applet程序设计,它不适宜用来构建丰富的桌面图形界面。但是从开始被介绍,它至少有一个好的思想就是布局管理,它负责为组件找到一个放置的位置,这种机制是必需的,因为GUI组件在不同的操作系统中有不同的尺寸。 现在, AWT扩展了组件模型和事件处理机制(由JavaBeans说明定义),新的图形API(称为Java 2D),支持剪贴板和拖拉操作,打印,准入,和新的GUI工具Swing,所有这些都归到Java基础类中(JFC)。 Swing Swing是曾经开发的最复杂的GUI之一。它有一套完全的组件从按钮到文件域到表格,树型和文件编辑器。这些组件不依赖于操作系统本地的部件,而是用原始的图形像直线、矩形、文字画出。这种画代表感观插件,它能够模仿本地的感观。 Swing也有平台无关的外观称为"Metal"。 Swing的结构由MVC模式得到启发,这里在屏幕上的视觉GUI组件和支持数据的模型对象之间有一个明显的分隔,在GUI和数据层之间的通讯基于事件。在最初的Swing版本中有许多错误并且有执行问题,这减慢了接受它的速度。Swing最大的问题是被从事于并且许多人相信它是为开发桌面应用而准备的。今天,有许多基于Swing开发的商业产品,包括大多数的Java集成开发工具,我所喜欢的集成开发工具是Jbuilder,它的速度相当的快。

SWT

SWT是IBM为它的Eclipse集成开发环境而开发的图形用户界面工具。SWT可以在Eclipse环境外使用,而且提供对操作系统本地图形用户界面的直接访问。因此,基于SWT的Java应用程序拥有本地的图形用户界面并且可以和本地别的应用程序和部件集成在一起。 假如你的桌面应用程序产生HTML报表,你想把它显示给用户看。你可以使用Swing去浏览简单的HTML文档,但这不是一个理想的的解决方案。最好是在你的应用程序里提供IE或者Mozilla浏览器引擎。SWT社区现在正在设计浏览器API,这些API可以让你产生基于IE或者Mozilla的HTML窗口。 SWT现在可以在AIX, HPUX, Linux, QNX, Solaris, and Windows下面运行。Mac OS X is 也在进行之中

时间: 2024-09-02 00:01:12

Java桌面应用程序开发简介的相关文章

如何做JavaGUI桌面应用程序开发

问题描述 如何做JavaGUI桌面应用程序开发 有没有好的办法将JavaGUI程序打包成独立的桌面应用程序? 解决方案 http://wenku.baidu.com/link?url=dkrbVbrtNd3MmJcZ1-pSj6MvQktgulKfufBkqac0GcatIKUOnzIuvh5PBjG4X3vIA9O7idAV_XBFMUhl2Ub2cvRWvV6uVkJ87zAn4bOf0RG 解决方案二: http://blog.chinaunix.net/uid-162865-id-274

关于java RMI分布式程序开发实例

关于java RMI分布式程序开发实例   作者: javaboy2012 Email:yanek@163.com qq:    1046011462   一. 服务器端     接口定义:注意必须继承Remote接口 package com.yanek.rmi.server; import java.rmi.Remote; import java.rmi.RemoteException; import java.util.List; public interface ChannelManage

Flex4桌面应用程序开发

问题描述 Flex4桌面应用程序开发:如何在本窗口点击某个按钮之后,弹出一个新的主窗口.登录的-- 问题补充:zhangshichun654 写道 解决方案 不行?你的LoginWindow 是window组件定义的吗?在Main中写(别忘记导入LoginWindow)private function showLoginWindow():void{var showNewWindow:LoginWindow = new LoginWindow(); showNewWindow.open(true)

搭建Java桌面应用程序原型(一)

在这篇文章里,我将描述一个Java桌面应用的原型,我把它叫做JImageing.我打算把焦点集中在应用的框架上,解释我怎么做技术上的决定和我怎么解决在开发过程中出现的问题. 为什么要建造一个原型? 很多应用程序的开发都是由于几个原因从一个原型开始的.这些原因中的第一条就是,你必须确定用现有的技术能够满足用户的需求.例如,在不用本地代码的Swing应用程序中Windows集成不能够被实现,这就导致丧失了一些Java跨平台的优势.SWT提供了一个和操作系统有限制的集成,这就允许你在很多本地平台上运行

IBM Workplace Designer V2.6应用程序开发简介

您已经听说过 IBM Workplace Designer,并想要知道它究竟是什么样的.本 文向您介绍 IBM Workplace Designer,描述谁应该使用它,以及何时使用它, 并带领您逐步构建一个示例应用程序,说明用 IBM Workplace Designer 开发定 制应用程序有多么容易. 什么是 IBM Workplace Designer? IBM Workplace Designer 是一个非常新的开发平台,用于快速构建 J2EE 应 用程序,并最终构建富客户机应用程序.它是

通过实例学习NetBeans 6的新功能 第2部分:Java桌面应用程序

■ NetBeans 6.0 为 Java 提供的新功能和扩展功能 NetBeans 6.0 提供了众多新功能和扩展功能,众所周知的 GUI 设计器(Matisse 项目)也从 5.5 版本开始得到了极大的增强.此外,由 于整合了 Profiler, 5.5 版也变得更加容易使用.下表列出了 Java SE 的新功能和扩展功能. GUI 设计器 自动国际化功能 Java 6 界面 支持 L&F 上下文帮助 使用语言指令高亮字体 支持 JSR-296 Swing 应用程序框架 支持 JSR-295

搭建Java桌面应用程序原型(三)

做技术决定 在开发过程中,我不得不去解决一些技术问题并且要做一些技术决定.下面的代码片段仅仅简单的进行了解释,但是他们将在我以后的文章中被详细描述.在这里重要的是去理解原型充当的角色.用你的原型去寻找技术问题的解决方案,去测试不常用的APIs,并且保证你的应用程序的性能. 用多层Panels 构建一个例如windows中的画板的图形应用程序不是非常复杂的任务.你必须处理鼠标事件.画线.画矩形和画椭圆.还要处理变形功能,比如从一个基础应用程序到一个专业级的图形编辑器要具有对图片的移动,缩放,重新排

搭建Java桌面应用程序原型(二)

设置系统外观 下面的setSystemLookAndFeel()方法调用了javax.swing.UIManager类的setLookAndFeel()方法: 它要求Swing从默认的Metal外观转换为本地外观: private void setSystemLookAndFeel() { try { UIManager.setLookAndFeel( UIManager.getSystemLookAndFeelClassName()); } catch (UnsupportedLookAndF

如何用java快速开发桌面应用程序?

问题描述 对于java的桌面应用程序开发,确实是一件很悲剧的事情,因为java开发的桌面程序界面很难控制.本人曾经用过两种方法开发桌面程序:1.纯代码版的swing开发2.matisse直接拖界面和.NET与VB差不多.第一种方法开发的速度相当的慢,第二种要快一些.但是对于我们习惯了WEB开发的程序员来说,用这两种方法开发的程序,开发速度和效果都感觉无法令人满意.于是我想到了用HTML开发界面...这样岂不是又快有好.目前我的构想是这样:java做主要逻辑处理,webkit做界面渲染,用一个si