corner imagecorner image
FeaturesPluginsDocs & SupportCommunityPartners

Swing 应用程序框架简介

本指南介绍了 NetBeans IDE 6.0 中对 Swing 应用程序框架的支持。

目录

本页上的内容适用于 NetBeans IDE 6.0 和 NetBeans IDE 6.1

要学习本教程,您需要具备以下软件和资源。

软件或资源 要求的版本
NetBeans IDE 版本 6.1
版本 6.0
Java Development Kit (JDK) 版本 6
版本 5

简介:NetBeans IDE 6 中的 Swing 应用程序框架

Swing 应用程序框架是一种小型框架,它可以简化中小型 Java 桌面应用程序的创建和维护过程。该框架包含一个 Java 类库,它支持可实现如下功能的结构:

  • 记住会话之间的状态。
  • 简化操作管理,其中包括作为后台任务运行以及指定阻止行为。
  • 改进资源管理,其中包括为 Bean 属性注入资源。

IDE 为开发基于 Swing 应用程序框架的应用程序提供了如下支持:

  • 提供 Java 桌面应用程序项目模板,其中包含主框架功能的框架实现。您可以通过此模板在以下两个 shell 中进行选择:
    • 基本应用程序。提供一个基本框架和一些样例菜单项、状态栏以及用于管理操作和资源的机制。
    • 数据库应用程序。提供基本应用程序 shell 中的所有功能,另外还提供具有创建、读取、更新和删除功能的简单数据库应用程序必备的所有功能。有关说明如何使用此 shell 的示例,请参见生成 Java 桌面数据库应用程序
  • 集成 IDE 的 GUI 生成器中的框架功能。在 IDE 中,可以像设计任何其他 Swing 应用程序一样设计 Swing 应用程序框架应用程序。
  • .properties 文件中生成应用程序的 UI 文本和其他资源。
  • 为操作提供一个特殊的属性编辑器,可以在其中将操作与快捷键、文本以及工具提示相关联。此外,还可以在选定或启用操作时配置其属性,并且将操作设置为异步运行。
  • 在 IDE 中生成应用程序时,会自动将 Swing 应用程序框架库打包到项目的 dist/lib 文件夹中。

注意:NetBeans 平台也可以用作应用程序框架。就这一点而言,Swing 应用程序框架与 NetBeans 平台的主要区别是范围不同。Swing 应用程序框架更小巧,更易于掌握。而 NetBeans 平台的功能更完善,并且更适于开发大型和可扩展的应用程序。有关基于 NetBeans 平台开发应用程序的详细信息,请参见 NetBeans 平台学习资源

创建基于 Swing 应用程序框架的应用程序

要充分利用 IDE 的 Swing 应用程序框架支持,您需要使用 Java 桌面应用程序项目模板。

创建新的 Swing 应用程序框架应用程序:

  1. 选择“文件”>“新建项目”。
  2. 选择 "Java" 类别,然后选择“Java 桌面应用程序”模板。单击“下一步”。

    选定了“Java 桌面应用程序”模板的“新建项目”向导

  3. 在向导的“名称和位置”页中,填写所需的字段。

    屏幕快照:“新建项目”向导中 Java 桌面应用程序模板的“名称和位置”字段

    如果选择的是基本应用程序 shell,可单击“完成”在计算机上创建项目,然后在“项目”和“文件”窗口中打开该项目。

    如果选择的是数据库应用程序 shell,请单击“下一步”以指定数据库表以及数据库主视图/详细视图配置。

生成的文件包括:

  • 包含 main() 方法、框架的 startup 方法以及一些其他实用程序方法的应用程序类。该类扩展框架 SingleFrameApplication 类。
  • 充当应用程序主窗口的视图类。该类扩展框架的 FrameView 类并封装 JPanel。可以在 GUI 生成器中编辑此类。
  • 应用程序的样例“关于”窗口。
  • 用于存储应用程序资源的 .properties 文件。

创建和配置操作

Swing 应用程序框架为帮助您定义和管理操作提供了相应的支持。

以下内容引用自 Java 教程:“操作对象是操作侦听程序,它不仅提供操作事件处理,还提供操作事件触发组件(如工具栏按钮、菜单项、常用按钮和文本字段)状态的集中处理。操作可以处理的状态包括文本、图标、助记符、启用和选定状态。”

在此框架中,使用 &Action 标注来标记充当操作的 actionPerformed 方法实现的方法。于是,框架将使用该方法来执行给定的操作。也可以为操作指定各种属性以确定以下内容:操作的启用状态、操作的阻止行为以及操作是否在后台运行。

在 IDE 中,可以使用“设置操作”对话框来生成操作的代码,其中包括标注以及任何属性。在“设置操作”对话框中,可以执行以下操作:

  • 设置组件以使用某个操作。
  • 创建框架操作。
  • 为操作配置用户界面属性,例如,在可视组件上显示的名称、工具提示文本、图标以及快捷键。
  • 创建布尔型属性以确定是否启用操作。
  • 创建布尔型属性以确定是否选择操作。(这仅适用于具有 selected 属性的非菜单组件,如单选按钮。)
  • 设置操作将其作为后台任务运行。
  • 配置操作以阻止其他操作,直至该操作完成时为止。

要打开“设置操作”对话框,请执行以下某项操作:

  • 右键单击某个组件,然后选择“设置操作”。

    屏幕快照:在“设计”视图中右键单击某个组件后显示的“设置操作”菜单项

  • 选择一个组件,然后在“属性”窗口中单击其 action 属性旁边的省略号 (...) 按钮。

    屏幕快照:在组件的属性表单中单击 action 属性的省略号按钮,以打开“设置操作”对话框

“设置操作”对话框中包含以下字段:

  • 使用以下内容设置操作属性。您可以从各种属性编辑器中进行选择以设置 action 属性。其中包含如下选项:
    • 缺省编辑器。为生成基于 Swing 应用程序框架功能的代码提供可视支持。
    • 现有组件中的值。用于指定要从中派生属性值的组件。
    • 定制代码。提供一个文本区域,您可以手动编写用于设置属性的代码。

    此帮助主题仅介绍了缺省编辑器中的选项。

  • 操作。从组合框中选择一个操作以将其分配给组件。

    组合框中仅列出了带有 @Action 标注的方法。如果要使用的方法没有此标注,请退出该对话框,然后在该方法中添加此标注。

    如果尚未编写此操作的方法,请选择“创建新操作”。这样,便可在“操作的方法”字段中输入方法名称。还要确保在“文本”字段中填写要在组件上显示的文本。单击“确定”退出该对话框后,将会创建一个框架操作。

    注意:为某个组件分配操作时,将会根据在“设置操作”对话框中输入的内容来设置该组件的 texttoolTipTexticon 属性。如果以前设置了这些组件属性,则这些属性将被“设置操作”对话框中指定的内容所替换。但是,您可以返回到该组件的属性表单,并为该组件定制所需的值。在运行的应用程序中,将使用特定于组件的属性。

  • 操作的类。如果要创建新的操作,请使用此组合框来选择要放置该操作的类。
  • 操作的方法。如果要创建新的操作,请使用此文本字段来命名要生成的操作方法。
  • 后台任务。如果选定该选项,将在后台运行此操作。如果操作需要很长时间才能完成,而您希望用户在完成操作期间能够在用户界面中执行其他操作,则可以使用该项。
  • 属性,“基本”标签:
    • 文本。为可视组件(如按钮和菜单项)中的操作键入要使用的文本。
    • 工具提示。键入当用户将鼠标放在与操作关联的任何组件上时希望显示的任何文本。
    • 快捷键。为操作提供快捷键。要指定希望使用的快捷键,请选择“字母”字段,然后键入将要使用的快捷键。将会自动选中要使用的任何修饰键(如 Ctrl 和 Shift)的复选框。
    • 图标。如果需要,请为操作关联图标。可以使用“小图标”和“大图标”按钮导航至要使用的图标。
    屏幕快照:“设置操作”对话框
  • 属性,“高级”标签:
    • 启用的属性。如果需要,请选择一个布尔型 Bean 属性,其值可决定是否启用操作。如果尚未创建此类属性,请在文本字段中键入该属性的名称。单击“确定”退出该对话框后,将会创建一个框架属性。
    • 选定的属性。如果需要,请选择一个布尔型 Bean 属性,其值可决定是否选择操作。此选项仅适用于具有 selected Bean 属性的组件,如 JRadioButton 和 JToggleButton。单击“确定”退出该对话框后,将会创建一个框架属性。
    • 阻止类型。用于在完成任务时阻止用户与用户界面之间进行交互。可以使用下拉列表中的选项来设置阻止所应用的级别。例如,您可以阻止整个应用程序,或者仅阻止某个窗口或组件。阻止类型仅适用于已指定为后台任务的操作。
    • 阻止对话框标题。指定对话框的标题,向用户发出任务尚未完成的警告。
    • 阻止对话框消息。指定对话框中显示的文本,向用户发出任务尚未完成的警告。

注意:

  • 缺省情况下,操作资源存储在 .properties 文件中,它具有与操作的 .java 文件相同的名称。 属性键是从操作名称派生而来的。受影响的属性有:文本、工具提示、快捷键、小图标、大图标、阻止标题以及阻止消息。
  • 可以在“应用程序操作”窗口中获得项目中所有操作的概览。通过选择“窗口”>“其他”>“应用程序操作”打开“应用程序操作”窗口。
  • 管理资源

    Swing 应用程序框架简化了应用程序资源的处理过程,并且可以将更多的内容存储在资源包中。

    当我们说到资源时,指的是应用程序使用的对象,但这些对象不在 .java 文件中。Java 程序中的常见资源包括图像文件和数据库。还可以将其他对象视为资源,例如字符串、颜色和字体。将字符串视为资源可大大简化应用程序的本地化。将其他对象视为资源,可以在不更改 .java 代码以及重新生成应用程序的情况下,更改这些对象的值。

    典型的 Swing 应用程序框架应用程序具有应用程序级别和类级别的资源包。类级别资源的名称与其对应的 .java 类同名,但它们包含 .properties 扩展名。所有这些包都被 ResourceMap 对象所封装。

    在“项目属性”对话框中,您可以编辑某些标准应用程序级别资源(如应用程序名称)。对于不包含在“项目属性”对话框中的任何应用程序级别的资源(例如,您自己定义的资源),可以在与主应用程序类名称对应的 .properties 文件中编辑这些资源。

    可使用以下方法打开“项目属性”对话框:右键单击项目节点,然后选择“属性”。应用程序面板和桌面应用程序面板中将显示应用程序属性。

    从 Java 桌面应用程序项目模板生成应用程序时,缺省情况下,将按照 Swing 应用程序框架约定生成代码以管理各种资源,如 UI 文本。所设置的组件属性值也会作为资源进行存储。

    您可以配置生成代码以处理资源的方式。

    设置为给定窗体生成配置代码的方式:

    1. 打开窗体并切换到“设计”视图。
    2. 在“检查器”窗口中选择根窗体节点。

      屏幕快照:选定了顶部节点的“检查器”窗口

    3. 在“属性”窗口中,从“自动资源管理”下拉列表中选择以下某个选项。
      • 关闭。所有属性值在 .java 文件中都是固定编码的。
      • 国际化。将为所有字符串生成资源代码,并将字符串值存储在 .properties 文件中。
      • 所有资源。为所有字符串、颜色、字体以及图标生成资源代码。这些属性值将存储在 .properties 文件中。
      • 资源注入。生成代码,以便在运行时将资源值从 .properties 文件注入到应用程序中。
      屏幕快照:根窗体节点的属性表单

    如果不希望在 .properties 文件中存储特定属性的值,请在“属性”窗口中单击给定属性旁边的省略号 (...) 按钮。然后清除“定义为资源”属性。

    样例框架项目

    如果要查看说明框架工作方式的示例,可以在 IDE 中浏览一些基于框架的样例项目。火星漫游查看器和文档编辑器样例项目均使用 Swing 应用程序框架。这些示例基于 Swing 应用程序框架库自带的两个示例。但是,它们已使用 IDE 的 GUI 生成器重新创建,因此您可以使用 IDE 的可视设计工具来试用它们。

    在 IDE 中打开其中一个样例:

    1. 选择“文件”>“新建项目”。
    2. 选择“样例”> "Java" 类别。然后选择 "Mars Rover Viewer" 项目或 "Document Editor" 项目。
    3. 屏幕快照:选定 "Mars Rover Viewer" 样例的“新建项目”向导
    4. 完成向导中的其余步骤。

    另请参见

    有关使用 IDE 的 GUI 生成器的更一般性介绍,请参见生成 GUI 应用程序简介

    要了解可以如何使用 Java 桌面应用程序项目模板来生成带有主视图/详细视图的数据库应用程序,请参见生成 Java 桌面数据库应用程序

    有关 Swing 应用程序框架本身的更多信息,请参见 https://appframework.dev.java.net/intro/index.htmlhttp://java.sun.com/developer/technicalArticles/javase/swingappfr/

    有关在 NetBeans IDE 中使用 GUI 生成器的一般提示和技巧,请参见 GUI 编辑器常见问题解答Patrick Keegan 的 Web 日志

    要直接从 IDE 访问 Swing 应用程序框架的 API 文档,请选择“帮助”>“Javadoc 引用”> " org.jdesktop.application (Swing Application Framework [JSR-296])"。还可以通过在 IDE 的源代码编辑器中右键单击一个框架类或类成员,然后选择“显示 Javadoc”来显示框架类的文档。

Bookmark this page

del.icio.us furl simpy slashdot technorati digg
Companion
Projects:
MySQL Database Server   GlassFish Community: an Open Source Application Server   Open Solaris  Open JDK: an Open SourceJDK   Mobile & Embedded Community     Sponsored by 
Sponsored by Sun Microsystems