Buoy 是一個構建在 Swing 之上的免費用戶界面(UI)工具包,它為 UI 開發人員提供了方便性和簡單性。在本文中作者用一個簡單的 fractal 用戶界面程序,介紹了 Buoy 可以做什么、為什么這么做。第一次嘗試用 java 語言構建簡單的用戶界面時,我對 Swing 接口的復雜性感到有些驚奇。老實說,有點想打退堂鼓。最近,一個朋友向我提到,他使用的渲染程序 Art of Illusion(請參閱 參考資料)基于一個不同的工具包:Buoy。推薦它的原因之一是它的界面更友好。當他第一次提到它時,我以為他在談 "BUI",而它與 GUI 這個名字的相似是故意的。在這里 B 代表 better(更好),但是名字 Buoy 并不是縮寫。
Buoy 是免費的。實際上,它是公共的東西。它并沒有在某個開放程度合理的許可下發布,實際上它根本不受任何許可控制。這意味著在任何用 Java 語言編寫的能夠運行 Buoy 的項目中都可以使用 Buoy,而不用考慮許可問題。因為提供了完整的源代碼,所以這個工具包很輕易修改和擴展。本文基于 Buoy 1.3 發行版,要求讀者對 Swing 有基本的了解,雖然不了解也能對付過去。
示例程序
我曾經嘗試用 Swing 構建的第一個應用程序最后以失敗告終。為了看出工具包之間的對比情況,我決定使用 Buoy 來構建這同一個程序。文章中的代碼示例全部來自該程序的 Buoy 版本。程序生成了一些分形,具體地說,是迭代的分形。基本思想很簡單:在平面上定義一系列的線條區段,從(0,0) 到(1,0),圍繞任意一個單位線條定位。繪制這些區段之后,繪制同一套變形線條,用這個區段作為單位向量。做起來比說的更輕易,就像在圖 1 中看到的。
圖 1. 分形編輯器中的分形
這個程序的界面相當簡單。它有一些界面小部件,有一個畫布,在畫布上繪制漂亮的圖片,還支持用鼠標操縱圖片。實際上,必須要做的全部工作就是操縱構成原始曲線的點,原始曲線會迭代地繪制出來。界面還有一個最小化的菜單;它可以打開和關閉文件,關閉窗口,或者把當前圖像保存為 PNG 格式的文件。雖然簡單,但是這個界面簡要地提供了一個 Buoy 小部件的合理示例,還有相當數量對事件處理系統的體驗。
程序實際的核心代碼 —— 分形生成器 —— 已經寫好了,這把這個示例變成一個很好的測試程序。當然,在更新它的過程中,我也發現并且修補了一些 bug。
發行包中包含示例程序的源代碼,還有編譯好的類文件和 Buoy 的 JAR 文件(單擊本文頂部或底部的 Code 圖標,下載 factal.tar)。包中還包含一個叫做 frac 的目錄,里面包含一些示例分形。假如使用一臺 UNIX 風格的機器,在路徑中有 Java 編譯器,那么只要運行 make 就能運行它。
新聞熱點
疑難解答