NetBeans可能是JSR項目的最大贏家它能幫助開發人員在他們的項目中采取下一步行動如果沒有NetBeans他們可能不知道該怎麼做如他們用JSR中的SingleFrameApplication類代替了JFrame因為使用它能更容易與JSR(我拒絕把它稱為Swing應用程序框架SAF因為這個名字太自大了好像就沒有其它Swing應用程序框架似的)接軌特別是在NetBeans IDE的幫助下許多開發人員都這樣做了迅速地看到了他們的開發成果
但遺憾的是JSR已經停止開發了當你用最新的NetBeans IDE 創建這種應用程序時它會警告你JSR已經沒有再繼續開發了如下圖所示
圖 NetBeans 新建Swing應用程序時的警告信息
因此現在有更多的開發人員需要NetBeans平台因為只有它能為Swing應用程序提供最合理的下一步行動特別是當你的代碼中大量采用了JSR規范時如你的代碼中找不到JFrame你可能將重點放在你的業務領域而不是基礎設施了因此你需要生命周期管理Action系統和Task你現在仍然需要它們而這些NetBeans平台都還為你保留著
我與一些正在向NetBeans平台轉移的開發人員深入交談後總結出轉移到NetBeans平台的個實用的技巧如果你也有轉向NetBeans的計劃不妨先學習一下別人的經驗
按CRUD教程辦事
現在到處都有各種各樣的教程可供下載閱讀甚至有視頻教程可以觀看但我這裡推薦的是Netbeans平台CRUD應用程序教程我最近遇到一位對NetBeans平台感到很困惑的開發人員當我向他推薦了這個教程學習後他問的問題也顯著不同了這個教程涵蓋了NetBeans平台的典型應用場景通過它你可以學到更多關於NetBeans平台API過程等一切需要了解的都應有盡有沒有理由不看這個教程就開始NetBeans之旅
打印NetBeans平台的Refcard
面對NetBeans平台時一個很大的問題是作用域換句話說就是NetBeans平台到底能干些什麼呢?你為什麼要使用什麼時候使用?這個時候看視頻教程是最有幫助的了但你也應該打印最基本的NetBeans平台Refcard它涵蓋的內容很全面甚至連最小的細節都不會放過在你的編程過程中可以給你很多代碼提示和編碼技巧
原型
快速實現一個原型這樣你才知道你需要些什麼任何事情都是想起來容易做起來難因此使用原型可以盡早知道實現目標的難度備份你的源代碼在NetBeans IDE中創建一個新的NetBeans平台應用程序創建一個新的模塊然後將你的代碼粘貼到這個模塊中接下來打包所有使用到的第三方開發庫根據需要設置依賴創建一個TopComponent然後在你的新應用程序窗口中顯示一些數據原型就搭建好了
將外部JAR轉換成模塊
開發人員經常問的一個頭痛的問題是真的嗎?我需要將我所有的庫都打包成模塊嗎?為什麼?有這種想法表示你想創建一個模塊化應用程序你可以從模塊化中受益如依賴管理版本控制和信息隱藏你甚至可以將多個JAR放在相同的模塊中(在庫打包成模塊向導中按住CTRL點擊或按住Shift點擊)但是你需要思考將多個JAR放進同一個模塊的緣由因為你的目標是要創建一個模塊化應用程序因此只應該將那些應該放在同一模塊的JAR組織在一起不要顧此失彼
思考一下模塊化的邊界
什麼時候該創建一個新的NetBeans模塊(或OSGi捆綁)?閱讀如何將應用程序拆分成模塊(tosplitintomodules)文檔很重要
注冊Action類
自NetBeans 以來你通常不再需要NetBeans平台Action類的子類在我應該使用哪一個NetBeans平台Action類(netbeansplatformaction)文章中有詳細的解釋為什麼那樣做就好?因為現在你可以直接從原來的應用程序復制ActionListeners和AbstractActions然後粘貼到NetBeans模塊即可你需要做的就是正確地注冊它們然後就大功告成了這意味著你的Action類轉移到菜單和工具條了從鍵盤快捷鍵調用它們就只是一個注冊問題了而不再涉及到復雜的編碼
愛上層
層是你最好的朋友一個層就是一個XML文件每個模塊最多有一個層應用程序啟動時每一層都被添加到虛擬文件系統你可以在層上注冊你喜歡的東西然後就可以從Java代碼中讀取這個層了聽起來似乎很抽象但如果你看了可插拔的JXTaskPane示例(_jxtaskpane)後你就覺得很簡單了這也是你轉移應用程序最具魔力的地方了在層中創建一個文件夾(folder)命名為Products然後每個模塊提供的新產品在Products下注冊一個文件夾在你的代碼中你可以遍歷Products文件夾找出所有的產品然後在應用程序的窗口中顯示它們服務提供者也可以在層上注冊具體請參考NetBeans擴展點如何工作?(extensionpoints)文章
保留JPanels
你的應用程序中使用JPanels了嗎?如果你用了那麼你應該感到很高興因為你可以無用做任何修改繼續使用它們創建一個新的TopComponent類然後調用add(myJPanel)即可就這麼簡單你也可以通過選項或向導窗口來完成例如你發現JPanel可以被用來配置什麼(在選項或向導窗口)以及作為窗口中的一個編輯面板因此你可以在多個不同的地方重復使用它只需要在你工作的NetBeans平台容器中調用add(myJPanel)即可
參與社區
通過參與社區你一定會得到更多收獲在郵件列表中你可以看到重要的內容各種各樣的問題和響應的解答你了解得越多你越應該利用機會向別人分享你的經驗你也可以參與某些社區應用程序的開發()為社區貢獻一份力量
轉移是一個過程
CTO認為轉移是一個過程不是一時半會兒就能完成的可能需要發布幾次產品的迭代因此需要有相應的計劃例如當你轉移到NetBeans平台後發布第一個版本時你可能只是簡單地將JPanels轉移到新平台的TopComponents在下一個版本中你可能想將你的業務對象打包成Node類以便它們可以顯示在資源管理器視圖中包括屬性窗口等這些都應根據你自己的步伐進行調整根據要轉移的規模你花在轉移上的時間可能需要數周或數月這都很正常如果你沒有那麼多時間你應該考慮分步實施為每一個版本確定好要轉移的功能沒有什麼規則可循只要根據你自己的需要安排就行了
這就是我總結的技巧讀了這篇文章你有何感想呢?你還有其它建議嗎?希望看到你的評論!
From:http://tw.wingwit.com/Article/program/Java/hx/201311/27022.html