Java 平台为图形应用和图形用户界面(GUI)提供了一个复杂的跨平台体系结构,包括众多的高级组件(如 AWT/Swing、SWT/JFace),以及功能丰富并独立于设备的图形系统和多媒体扩展(如 Java 2D、3D API)。本专题汇集了相关技术资源,您可从中学习并掌握 Java GUI 开发所必需的知识和技巧。

Java GUI 开发综述

Java 2 用户界面自从 Java 语言出现的早期到现在,图形和用户界面功能已取得了飞跃式的发展。 Java 2 平台包含一个复杂的跨平台的用户界面体系结构,它的组成包括众多的高级组件、一个先进的,功能丰富的,独立于设备的图形系统和许多的多媒体扩展。

SWT、Swing 或 AWT:哪个更适合您?本文通过对 Eclipse 的 SWT 和 Java Swing、AWT GUI 工具包进行比较,可以帮助新应用程序的开发人员从中选择适当的工具。您可以通过本文了解对每个工具包的基本特性的介绍,以及使用每个工具包的优缺点。

Abstract Windows Toolkit(AWT)GUI 工具包

AWT 摘要Java 1.4 为 AWT 库添加了几种功能,包括查明屏幕装饰如桌面工具栏所占用空间的功能、将 " 颜色 " 常量变成大写,鼠标滚轮支持以及更好地区分鼠标和键盘键以及键的位置的功能。本文描述了这些更改并提供了深入的详细信息,以便您快速入门。

Java 2 中新的焦点子系统Java 1.4 发行版中,Java 2 平台有了个全新的 AWT 焦点子系统。 Java 语言工程师 Bertrand Portier 对新的类和方法进行了初步研究(包括基本的 KeyboardFocusManager ),这些类和方法中包含该 AWT 焦点子系统。

另一个简单的 FrameJava 1.4 允许除去 Frame 的 Title bar 并允许通过编程控制将 Frame 最大化。通过这个快速入门,作者详细描述并演示了这些变化,同时还说明了如何支持在没有拖曳区域的情况下移动 Frame 。

支持显示元素拖动的用户图形界面的框架实现在图形界面的应用系统中,经常需要界面上的元素可以自由拖动,整个界面具有较为美观的背景。但原有 AWT 包提供的组件不能直接完成此功能,此外,拖动过程中的闪烁及对象选中策略等问题也是实际应用中需要解决的问题。本文将会介绍一个基于 AWT 包的界面显示框架,完成上述功能。

Java Swing 基础

教程:Swing 入门在学习本教程期间,您将了解 Swing 中的所有入门组件;所谓入门组件,指的是您用来构造简单用户界面(UI)的组件。您将学习如何用基本的方法来设计这些组件的属性,以及如何让这些 Swing 组件与其他组件交互。

教程:中级 Swing在本教程中,将介绍 Swing 中超出基本组件和应用程序的一些方面。虽然这些研究领域更难学习和掌握,但它们更强大,可以让您创建更好的应用程序。

使用 Swing 进行动态界面设计Swing UI 工具包使动态更新用户界面以响应事件或用户操作成为可能(虽然并不总是很容易)。本文回顾了一些用于构建能够动态更新的 UI 的常用方法、其间可能遇到的一些陷阱和一些有助于您决定何时它是完成工作的正确方法的原则。

Java 5 中 Swing 的特性

高级 Synth本文将深入透视 Synth 外观,它是 Java 5.0 中为 Swing 引入的最新内容。通过为 Java UI 编程引入 " 皮肤 " 的概念,Synth 使开发人员可以为应用程序创建和部署定制的外观。

Java 1.4 中 Swing 的特性

Swing 的新 Spinner 组件本文描述了 Java 1.4 中 Swing 的新 JSpinner 组件,它允许您从拾取列表中选择日期、数字和选项。

J2SE 1.4.2 提供两种新的外观设计为了满足用户桌面的最新和最佳需求,Sun 更新了一组由 J2SE 1.4 平台提供的标准外观设计。本文使用 1.4.2 版本来向 Windows 用户展示如何获得 Windows XP 的外观,以及 Linux 桌面的 GTK+ 外观。

SpringLayout 管理器当设计复杂的界面时,许多开发人员总是避免使用功能强大的 GridBagLayout 管理器。他们不去摆弄 GridBagConstraints,而是使用像 BorderLayout 这样的其他布局管理器来将面板嵌入到面板中。最新引入的 SpringLayout 管理器提供了一种可选方式,其中的组件可以相对于其他组件进行放置。本文向您展示了如何使用这种新的布局管理器。

Swing 中新的 JFormattedTextField 组件使用了输入校验器和焦点侦听器,接受格式化输入就不必那么困难了。本文向您展示了如何使用 Java 1.4 中新的 JFormattedTextField 组件来提示数字输入、日期输入和格式化输入。

Swing 中的声音Swing 体系结构一直为开发者提供创建类似于本地 UI 的 Java 应用程序用户界面的方法。Java 1.4 版本进一步拓展了这个观念,它提供了一种将反馈声音与 UI 操作关联起来的机制 — 这里所说的反馈声音也就是用户习惯于从计算机扬声器中听到的哔哔声和叮当声。尽管该功能在缺省情况下是关闭的,本文向您展示了如何发挥它的力量。

Java Swing 高级技术

教程:JDNC 简化了 Java UI 开发在这篇实用教程中,介绍了如何用 JDNC Swing Extensions 在不对现有代码做过多改变的情况下改进 Java UI 。还将介绍如何通过利用 JDNC 数据绑定和 DataSet API 简化以数据为中心的 Java UI 开发。

建立更好的 GUI:Java 布局管理器能怎样改进 GUI 设计和开发过程本文作者通过提供小组中两方使用的公用框架解释了 Java 布局管理器能怎样给 GUI 设计和开发过程带来一致。这不仅仅会缓解您小组人员之间的摩擦,还可以实现更好的整体 GUI 设计和更健壮的最终产品。

Swing 模型过滤:使用过滤器对象重新解释数据模型和状态模型本文讨论模型过滤技术。您可将这一技术用于 Swing 组件集,这样即可在不改变底层数据的条件下提供模型数据的不同视图。

如何使用 Swing 的 Undo 包对于许多应用,如果能为用户提供 Undo/Redo 即撤消 / 重做的功能将会是很方便的。一般的解决方法都是自己定义一系列类来实现。在 Swing 中提供了专门实现 Undo/Redo 功能的 javax.swing.undo 包,使用该包 (package) 来为您的 Java 应用增加 Undo/Redo 功能将是非常的方便。

智能数据使 Swing 保持简单Swing 体系结构允许 Java 开发人员创建呈现大量数据的复杂显示。遗憾的是,编写代码以在大型 Swing 组件内维护那些数据简直是一场噩梦。在本文中,介绍了一项称为 iData 或称为智能数据的技术。您可以使用 iData 体系结构来在您的应用程序内创建数据的中央资源库。这样,可以更彻底地将数据和显示相分离,并且产生数据的更清晰更易于维护的代码。

Java Swing 开发

教程:Spring 开发 Swing GUI 简介本教程介绍了 Spring 框架以及依赖注入的概念 ( 也称为反转控制 ),这是在编写简单的 Java Swing GUI 应用程序时使用的技术。我们将从头开始开发一个完整的可以工作的应用程序。

教程:构建定制的树型视图本教程讲述了关于 Swing 树型视图的概念、它们所显示的内容、如何设置它们以及如何定制它们。还讲述了使用线程来执行长时间运行任务的概念,这样用户界面就可以保持迅速反应。

教程:构建一个 Java 拍卖系统的客户端本教程中您将使用数据视图部署一个 IBM DB2 Universal Database Express V8.2 数据库定义。然后,您将使用 Java Visual Editor 构建一个图形化的用户界面(GUI),其动态地访问本地数据库和拍卖服务器所支持的远程 Web 服务。数据绑定支持已经显著地改进了与不同数据源连接的作业。

Java 图形用户界面设计本文作者试图通过自己的开发经历介绍一些具体的 Java GUI 应用实例,希望能给 Java 开发人员一些帮助。

可访问性编程

为可访问性编码所有 Java 应用程序对于残疾人士都应该是可访问的。用 GUI 应用程序实现这一点时需要格外注意。本文向您展示了如何使用基于 JFC/Swing 的可访问性工具箱事半功倍地实现最高级别的可访问性。

增强图形用户界面的可访问性JFC/Swing 框架的一个主要特征是使用可插式 look-and-feel(外观)设计的能力。同一个应用程序可以使用不同的 look-and-feel 设计来运行,而且无需做任何修改。本文解释了 Metal look and feel 背后的这种机制。

与 Eclipse 集成

将基于 Swing 的开发工具插入 Eclipse 中本文学习如何将独立的、基于 Swing 的编辑器作为插件集成到 Eclipse Platform 中。

在 Eclipse 中嵌入 NASA World Wind Java SDKNASA 开发的开源 World Wind Java (WWJ) SDK 为地理信息系统(Geographic Information Systems,GIS)社区提供了新的可能性。 World Wind 是一种使用 Java 语言和 OpenGL 编写的 3D 交互式地球查看工具,使用户可以从外太空观看地球上的任何地方。本文将讲述想要增强基于 Eclipse 的 应用程序的 GIS 开发人员如何将 WWJ SDK 作为插件嵌入到 Eclipse 中。

其它框架及工具

用 TableModel Free 框架简化 Swing 开发本文将介绍 TableModel Free(TMF)框架,该框架利用 SWing JTable 消除了对 TableModel 的需要。通过将所有特定于表的数据移到编译好的代码之外,并将它们放在可配置的 XML 文件中,TMF 框架使 JTable 具备了更强的可配置性。

用 IFrame 跟上潮流:将 IFrame 窗口转换为炫目的应用程序窗口IFrame 是一种应用程序窗口体系结构,它可以有自定义颜色、自定义边框、自定义形状、自定义组件、甚至透明性。有了 JFrame,就不需要在应用程序中总是使用乏味的、老的 JFram 了。本文介绍了 IFrame 类,并展示了如何用它将标准 JFrame 应用程序窗口立刻转换为先进的 IFrame 。

AUIML Toolkit 入门Abstract User Interface Markup Language 工具包是一种快速开发工具,可以帮助开发人员编写 GUI,以便将其作为 Swing 应用程序运行或者在 Web 上运行,而无需进行任何更改。

Buoy 使得简单 Java 用户界面的编程变得轻而易举Buoy 是一个构建在 Swing 之上的免费用户界面(UI)工具包,它为 UI 开发人员提供了方便性和简单性。本文作者用一个简单的 fractal 用户界面程序,介绍了 Buoy 可以做什么、为什么这么做。