首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

NetBeans 6.0 Java 桌面應用程式開發實戰:Swing Application Framework 與 GUI Builder 完整體驗

     編輯:Java 相關知識

NetBeans 6.0 整合了 Matisse GUI Builder、Swing Application Framework (JSR-296)、Beans Binding (JSR-295)、Profiler 等強大功能。本文以開發 Flickr 關鍵字搜尋圖片檢視器為例,完整示範桌面應用開發流程。

Swing Application Framework (JSR-296) 核心架構

輕量級框架,無專屬配置檔,五大核心模組:

  • 生命週期管理:Application、SingleFrameApplication 提供 launch()、initialize()、startup()、ready()、exit()、shutdown()
  • Session 管理:自動記憶視窗大小、位置,重啟自動還原
  • Action 機制:@Action 註解標記動作方法,自動綁定 UI 元件,支援 ActionListener 切換
  • 任務系統:非同步 Action、Task Monitor、任務分塊
  • 資源綁定:標準化資源注入、自動國際化(I18N)

Swing Application Framework 整體架構

建立 Java Desktop Application 專案

  1. File > New Project → Java → Java Desktop Application
  2. 專案名 FlickrDemo,選擇「基本應用程式」Shell
  3. 完成後執行 (F6),調整視窗大小位置後關閉,再次執行自動還原 —— Session 管理生效

專案建立精靈

主應用程式類別

public class FlickrDemoApp extends SingleFrameApplication {
    @Override protected void startup() {
        show(new FlickrDemoView(this));
    }
    public static void main(String[] args) {
        launch(FlickrDemoApp.class, args);
    }
}

GUI Builder 視覺化設計介面

  1. 開啟 FlickrDemoView.java 切換到 Design 模式
  2. 從 Palette 拖放 JLabel、JTextField、JButton 到設計區
  3. Space 鍵編輯文字,右鍵「變更變數名稱」重命名元件:
原名稱新名稱
jLabel1keywordLabel (文字: Keyword:)
jLabel2imageLabel (空白,顯示圖片)
jTextField1keywordText
jButton1findButton (文字: Find,圖示: search.jpg)

GUI 編輯器

元件面板

設計區域

建立 Action 並實作搜尋功能

  1. findButton 右鍵「設定動作」→「建立新動作」,方法名 doSearch,文字 "Find",匯入圖示
  2. keywordText 同樣設定相同 Action(支援 Enter 鍵觸發)

建立動作選單

建立動作對話框

同步版本實作

@Action
public void doSearch() {
    String s = keywordText.getText();
    Icon icon = Flickr.getInstance().search(s); // 需自行實作 Flickr 類別並填入 API Key
    imageLabel.setIcon(icon);
}

執行測試:輸入關鍵字點擊 Find 或按 Enter,顯示搜尋結果。

實際執行畫面

非同步版本(背景執行)

Action 設定對話框勾選「背景任務」。修改回傳型別為 Task:

@Action
public Task doSearch() {
    return new DoSearchTask(getApplication());
}

private class DoSearchTask extends Task<Icon, Void> {
    private String s;
    DoSearchTask(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); }
}

執行時狀態列進度條動畫顯示,UI 保持回應,搜尋完成自動更新圖片。

設定背景任務

背景執行進度條

自動國際化 (I18N)

GUI Builder 自動將元件文字儲存至 FlickrDemoView.properties。右鍵選單「新增語言環境」加入中文,編輯屬性檔對應翻譯:

建立中文綁定

屬性編輯器中文化

中文環境下自動顯示中文介面,英文環境顯示英文。

中文化應用程式

發布為 Java Web Start

專案 Properties → Application → Web Start,勾選「啟用 Web Start」。建置後自動產生 JNLP 與簽名 JAR,支援一鍵網路部署。

啟用 Java Web Start

結語

NetBeans 6.0 結合 Swing Application Framework、Beans Binding、Matisse GUI Builder,將傳統繁瑣的 Swing 開發簡化為「拖放設計 → 宣告 Action → 填寫邏輯」的高效流程,並內建 Session 管理、非同步任務、自動 I18N、Web Start 部署等企業級特性,大幅提升桌面應用開發效率。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved