程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 通過實例學習NetBeans 6的新功能 第2部分:Java桌面應用程序

通過實例學習NetBeans 6的新功能 第2部分:Java桌面應用程序

編輯:關於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 Beans 綁定

Java Web Start Java 應用程序項目的 Java Web Start 化

運行環境的轉換

Profiler Profiler 已作為 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 設計器會有一定幫助。

圖 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”窗格中選擇“基本應用程序”。

點擊“完成”按鈕完成創建。

圖 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 設計器附有組件面板,可以從組件面板上將組件托放到窗體上來創建應用程序界面。也可以將自己創建的組件添加到組件 面板中。

圖 3 GUI 編輯器

組件面板按照內容分類,使用十分簡單。

圖 4 GUI 設計器組件面板

可以將組件簡單地置於需要的位置,再通過移動、放大縮小等操作,來創建如以下向導所示的窗體。

圖 5 GUI 設計器的設計區域

如上圖所示,將 JLabel、JTextField 和 JButton 組件置於設計區,然後在下面空白處再放置一個 JLabel。選中組件按 Space 鍵可以編 輯顯示的文本,右鍵單擊各組件並選擇“更改變量名稱”,將添加的各組件更改為以下列表中的信息。

原變量名、Label 名 Label 變量名 jLabel1 Keyword: keywordLabel jLabel2 [空白] imageLabel jTextField1 [空白] keywordText jButton1 Find findButton

■創建 Action

點擊 findButton 按鈕創建操作。右鍵單擊 findButton,在上下文菜單中選擇“設置操作”,如下圖所示。

圖 6 創建操作菜單

這將顯示如下圖所示對話框。在“操作”下拉菜單中選擇“創建新操作...”。在“操作方法”字段中輸入“doSearch”。在屬性的“文本 ”字段中輸入“Find”, 將 search.jpg 保存到適當的文件夾中,然後通過“導入到項目”按鈕指定它作為小圖標。

圖 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 按鈕或者直接按回車鍵查看搜索結果,如下 圖所示。

圖 8 實際運行畫面

■在後台運行操作

下面將進一步完善程序。在關鍵字搜索期間,按鈕處於點擊狀態,並且應用程序暫時處於無法響應的狀態。因此要將操作更改為在後台運行 。

Swing 應用程序架構可以簡單地運行後台操作。可以通過在操作的設置對話框中選中“後台任務”復選框進行設置。

圖 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);
     }

實際運行程序,在搜索的期間狀態欄的進度條一直在動,由此可見搜索功能是在後台運行的。

圖 10 以後台方式運行、進度條

■應用程序中文化

通過 GUI 設計器配置的組件 Label 名稱都是在資源綁定中自動保存的。可以通過編輯資源綁定方便地實現中文化。在 FlickrDemoView.properties 中添加中文的資源綁定。在上下文菜單中選擇“添加語言環境”,然後添加中文。

圖 11 創建中文綁定

同樣,在 FlickrDemoView.properties 的上下文菜單中選擇“打開”。在打開的窗口中輸入英語對應的中文屬性值。

圖 12 用屬性編輯器進行中文化作業

完成中文化後,在日語環境中運行時,UI Label 的變化如下圖所示。在英語環境中運行時,則會用英語顯示。

圖 13 中文化的應用程序

■將應用程序發布到 Java Web Start

要使其他人也能使用此應用程序,可以發布其 jar 包。本文將通過 Java Web Start 將它發布到互聯網&。

NetBeans 6.0 能夠構成多個運行環境,其中包括 Java Web Start。如下圖所示,在項目屬性窗口的“應用程序”分支下選擇“Web Start ”,然後在右側選中“啟用 Web Start”復選框。

圖 14 通過屬性窗口啟用 Java Web Start

完成設置後啟動 Web Start,它會自動讀取 jar 包並運行應用程序。

借助 NetBeans 6.0.1 的 Java 桌面應用程序項目模板,開發人員可以方便地構建應用程序,而且 Swing 應用程序框架和 Beans Binding 等組件也簡化了繁瑣的開發過程。下一部分將介紹如何使用 Mobility 開發游戲。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved