NetBeans 6.0 整合了 Matisse GUI Builder、Swing Application Framework (JSR-296)、Beans Binding (JSR-295)、Profiler 等強大功能。本文以開發 Flickr 關鍵字搜尋圖片檢視器為例,完整示範桌面應用開發流程。
輕量級框架,無專屬配置檔,五大核心模組:
Application、SingleFrameApplication 提供 launch()、initialize()、startup()、ready()、exit()、shutdown()@Action 註解標記動作方法,自動綁定 UI 元件,支援 ActionListener 切換
FlickrDemo,選擇「基本應用程式」Shell
public class FlickrDemoApp extends SingleFrameApplication {
@Override protected void startup() {
show(new FlickrDemoView(this));
}
public static void main(String[] args) {
launch(FlickrDemoApp.class, args);
}
}
FlickrDemoView.java 切換到 Design 模式| 原名稱 | 新名稱 |
|---|---|
| jLabel1 | keywordLabel (文字: Keyword:) |
| jLabel2 | imageLabel (空白,顯示圖片) |
| jTextField1 | keywordText |
| jButton1 | findButton (文字: Find,圖示: search.jpg) |



doSearch,文字 "Find",匯入圖示

@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 保持回應,搜尋完成自動更新圖片。


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


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

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

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