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

NetBeans 6.0 是一款“无所不能”的 IDE。本系列文章将围绕 2 月刚刚发布的 NetBeans 6.0.1 中文版的概要和实际使用方法进行介绍,并提供一些示例程序。本部分将主要介绍 Java SE 的相关功能,以及如何使用 GUI 设计器和 Swing 应用程序框架开发一个简单的桌面应用程序,然后将该应用程序发布到 Web Start。

  ■ 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 Beans 绑定

Java Web StartJava 应用程序项目的 Java Web Start 化

  运行环境的转换

ProfilerProfiler 已作为 Java SE 标准默认安装,不需要另行安装。

  HeapWalker

  Drill down 图

  Profiler Point

编辑器的扩展NetBeans 6.0 的编辑器得到了大量改进。

  操作界面的改善

  代码自动完成

  语法高亮显示

  代码生成

  即时更名

  实时模板

  另外,编辑器还增加了以下外围功能。

  任务列表

  本地历史记录

  变更比较查看器

  异同点边侧栏

  有关这些新功能和扩展功能的详细信息,请参阅

  http://www.netbeans.org/features/index_ja.html

  现在,尝试利用 Swing 应用程序框架,开发一个简单的获取图像的应用程序。实现在 Flickr(flickr.com)进行关键字搜索,获取并且显示单幅图像的功能。(要运行此 Demo,需要获取 Flickr API 的 API KEY,并能连接到互联网。)

  ■Swing 应用程序框架 (JSR-296)

  Swing 应用程序框架可用于创建 Swing 应用程序。框架给人的印象总是非常繁琐且难以使用,但 Swing 应用程序框架却是一个小巧、没有特定设置文件且简单易用的框架。https://appframework.dev.java.net/ 正在进行该框架的进一步开发工作。

  Swing 应用程序框架 https://appframework.dev.java.net/

  JSR-296 http://jcp.org/en/jsr/detail?id=296

  下面简要介绍该框架的基本情况。首先来看看该框架的整体结构,这对后续使用 NetBeans 的 GUI 设计器会有一定帮助。

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

  图 1 Swing 应用程序框架的整体结构

  Swing 应用程序框架主要由以下 5 部分构成,并能提供较为复杂的生命周期管理和 Session 管理等。此外,可以简单地重用添加了 @Action 注释的 Action。不需要使用特定的方法和文件,就可以使用基于标准的资源绑定。

生命周期管理提供 Application, SingleFrameApplication 类

  应用程序的生命周期管理

  launch()

  initialize()

  startup()

  ready()

  exit()

  shutdown()

Session 管理窗口尺寸的管理

  窗口位置的管理

Action

  ActionListener 调换

  @Action 注释

任务异步 Action

  任务监视器

  任务的块化

资源普通的资源绑定

  资源注入

  使本地化成为可能

  ■创建 Java 桌面应用程序项目

  下面将演示如何使用 Swing 应用程序框架进行实际开发。GUI 设计器能够基于 Swing 应用程序框架创建应用程序。可以通过以下方法创建使用此框架的项目模板,随后可以在模板中编写实际代码。

  选择“文件”>“新建项目”,这将打开“新建项目”对话框。

  在“新建项目”对话框的“Java”选项中,选择“Java 桌面应用程序”。

  在随后显示的向导画面的“项目名称”字段中输入“FlickrDemo”。

  在“选择应用程序 Shell”窗格中选择“基本应用程序”。

  点击“完成”按钮完成创建。

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

  图 2 项目创建向导

  至此,已经完成了项目创建。主编辑器窗口中附加了 GUI 设计器的各种菜单栏。接下来先运行一下项目。按 F6 功能键,或者依次选择“运行”>“运行主程序”来运行项目。试着改变应用程序的大小和窗口的位置,然后停止运行。再次运行项目,应用程序会在相同的位置,以相同大小的窗口启动。这就是 Swing 应用程序框架的 Session 管理功能。

  在左侧项目窗口的“源包”节点下,找到“FlickrDemoApp.java”文件,双击该文件在编辑窗口中显示其代码。使用FlickrDemoApp 继承 SingleFrameApplication,使用 GUI 组件创建 startup() 方法,并且在 main() 方法中调用 launch() 方法,如以下代码所示,。

/*
* FlickrDemoApp.java
*/
package flickrdemo;
import org.jdesktop.application.Application;
import org.jdesktop.application.SingleFrameApplication;
/**
* The main class of the application.
*/
public class FlickrDemoApp extends SingleFrameApplication {
  /**
   * At startup create and show the main frame of the application.
   */
  @Override protected void startup() {
    show(new FlickrDemoView(this));
  }
  /**
   * Main method launching the application.
   */
  public static void main(String[] args) {
    launch(FlickrDemoApp.class, args);
  }
}

  ■使用 GUI 设计器创建程序界面

  使用 GUI 设计器实际创建一个图形用户界面。打开 FlickrDemoView.java,单击“设计”选项卡,打开 GUI 设计器。

  NetBeans 的 GUI 设计器附有组件面板,可以从组件面板上将组件托放到窗体上来创建应用程序界面。也可以将自己创建的组件添加到组件面板中。

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

  图 3 GUI 编辑器

  组件面板按照内容分类,使用十分简单。

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

  图 4 GUI 设计器组件面板

  可以将组件简单地置于需要的位置,再通过移动、放大缩小等操作,来创建如以下向导所示的窗体。

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

  图 5 GUI 设计器的设计区域

  如上图所示,将 JLabel、JTextField 和 JButton 组件置于设计区,然后在下面空白处再放置一个 JLabel。选中组件按 Space 键可以编辑显示的文本,右键单击各组件并选择“更改变量名称”,将添加的各组件更改为以下列表中的信息。

原变量名、Label 名Label变量名
jLabel1Keyword:keywordLabel
jLabel2[空白]imageLabel
jTextField1[空白]keywordText
jButton1FindfindButton

  ■创建 Action

  点击 findButton 按钮创建操作。右键单击 findButton,在上下文菜单中选择“设置操作”,如下图所示。

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

  图 6 创建操作菜单

  这将显示如下图所示对话框。在“操作”下拉菜单中选择“创建新操作...”。在“操作方法”字段中输入“doSearch”。在属性的“文本”字段中输入“Find”, 将 search.jpg 保存到适当的文件夹中,然后通过“导入到项目”按钮指定它作为小图标。

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

  图 7 创建操作对话框

  根据以下代码编写 FlickrDemoView.java 源代码创建操作。双击 keywordText 设置相同的操作。

@Action
    public void doSearch() {
    }

  ■添加代码

  将 Flickr.java 复制到项目的源代码文件夹。把下载的文件复制到“源包”节点下的“flickrdemo”包下面。使用从 http://www.flickr.com/services/api/misc.api_keys.html 获取的 API KEY 替换 Flickr.java 代码中的 MY_KEY。用以下代码替换操作的 doSearch() 方法中的内容。它实现的主要功能是将获取的图标设置到 imageLabel 中。

@Action
  public void doSearch() {
    String s = keywordText.getText();
    Icon icon = Flickr.getInstance().search(s);
    imageLabel.setIcon(icon);
  }

  实际运行程序(这个应用程序必须要连接到互联网才能运行)。输入要搜索的单词,点击 Find 按钮或者直接按回车键查看搜索结果,如下图所示。

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

  图 8 实际运行画面

  ■在后台运行操作

  下面将进一步完善程序。在关键字搜索期间,按钮处于点击状态,并且应用程序暂时处于无法响应的状态。因此要将操作更改为在后台运行。

  Swing 应用程序架构可以简单地运行后台操作。可以通过在操作的设置对话框中选中“后台任务”复选框进行设置。

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

  图 9 设置后台任务

  修改源代码,将操作的返回值更改为 Task 类型。根据下示代码更改源代码。DoSearchTask 类调用 doInBackgroupd() 方法进行搜索,通过 succeeded() 方法将获取的图标设置到 imageLabel 中。更改对象的返回值为 Icon。

@Action
  public Task doSearch() {
    return new DoSearchTask(getApplication());
  }
  private class DoSearchTask extends org.jdesktop.application.Task
  <Icon, Void> {
    private String s;
    DoSearchTask(org.jdesktop.application.Application app) {
      super(app);
      s = keywordText.getText();
    }
    @Override protected Icon doInBackground() {
      return Flickr.getInstance().search(s);
    }
    @Override protected void succeeded(Icon result) {
      imageLabel.setIcon(result);
    }

  实际运行程序,在搜索的期间状态栏的进度条一直在动,由此可见搜索功能是在后台运行的。

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

  图 10 以后台方式运行、进度条

  ■应用程序中文化

  通过 GUI 设计器配置的组件 Label 名称都是在资源绑定中自动保存的。可以通过编辑资源绑定方便地实现中文化。在 FlickrDemoView.properties 中添加中文的资源绑定。在上下文菜单中选择“添加语言环境”,然后添加中文。

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

  图 11 创建中文绑定

  同样,在 FlickrDemoView.properties 的上下文菜单中选择“打开”。在打开的窗口中输入英语对应的中文属性值。

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

  图 12 用属性编辑器进行中文化作业

  完成中文化后,在日语环境中运行时,UI Label 的变化如下图所示。在英语环境中运行时,则会用英语显示。

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

  图 13 中文化的应用程序

  ■将应用程序发布到 Java Web Start

  要使其他人也能使用此应用程序,可以发布其 jar 包。本文将通过 Java Web Start 将它发布到互联网&。

  NetBeans 6.0 能够构成多个运行环境,其中包括 Java Web Start。如下图所示,在项目属性窗口的“应用程序”分支下选择“Web Start”,然后在右侧选中“启用 Web Start”复选框。

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

  图 14 通过属性窗口启用 Java Web Start

  完成设置后启动 Web Start,它会自动读取 jar 包并运行应用程序。

  借助 NetBeans 6.0.1 的 Java 桌面应用程序项目模板,开发人员可以方便地构建应用程序,而且 Swing 应用程序框架和 Beans Binding 等组件也简化了繁琐的开发过程。下一部分将介绍如何使用 Mobility 开发游戏。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值