溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Java Swing實例分析

發(fā)布時間:2021-12-27 16:09:42 來源:億速云 閱讀:199 作者:iii 欄目:編程語言

本篇內(nèi)容主要講解“Java Swing實例分析”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“Java Swing實例分析”吧!

當(dāng)Abacus Research AG,一家商業(yè)軟件開發(fā)公司,決定將開發(fā)平臺從 Borland 的 Delphi 轉(zhuǎn)向Java Swing時,它發(fā)現(xiàn)自己站在了軟件開發(fā)的十字路口。

我們大量的應(yīng)用程序開發(fā)團(tuán)隊擁有多年的Delphi GUI開發(fā)經(jīng)驗,卻沒有任何的Java Swing經(jīng)驗,并且我們需要在極短的時間內(nèi)將大量的Delphi應(yīng)用程序轉(zhuǎn)換為Swing。在研究了當(dāng)時可用的GUI工具后,我們覺得我們應(yīng)該通過贊助一個GPL開源Java GUI編譯器來達(dá)到自己的目標(biāo),而且這個編譯器還可以幫助其他的應(yīng)用程序開發(fā)者面對相同的挑戰(zhàn)。

AbaGUIBuilder ,Abacus Java GUI編譯器被設(shè)計用來實現(xiàn)輕松地從VB或Delphi開發(fā)轉(zhuǎn)向Java Swing。這一策略幫助Abacus Research實現(xiàn)了其Java版應(yīng)用程序的交付,縮短了開發(fā)時間,使其開發(fā)人員把精力投向商業(yè)應(yīng)用,而不是Swing框架的錯綜復(fù)雜。

如圖1所示,AbaGUIBuilder有能夠在許多其他開發(fā)環(huán)境如VB和Delphi找到的要素。位于視窗左上角是活動對象樹,其下是Swing組件選擇區(qū)。位于視窗的中上部是開發(fā)面板,或者說是“畫布”,在這里放入Swing組件將其實例化。在右上部是屬性編輯器。下部是事件面板,包括兩個制表符頁,分別是事件代碼編輯器,為每個單獨(dú)的可視對象添加事件代碼,和消息面板,顯示AbaGUIBuilder的狀態(tài)消息。

Java Swing實例分析

Abacus GUI編譯器

為什么做我們自己的GUI工具?

為什么我們選擇寫自己的工具?開始,我們決定我們的工具應(yīng)該包括以下五個要求:
1. 容易使用
2.不需要布局管理器的使用經(jīng)驗
3. 不需要Swing的使用經(jīng)驗
4. 不需要輸出Swing代碼
5. 實現(xiàn)商業(yè)邏輯與UI的分離

我們在評估當(dāng)時可用的GUI開發(fā)工具時發(fā)現(xiàn)好的IDE都是手寫Swing代碼,這就不符合我們的***個和最關(guān)鍵要求。

我們定義的容易使用是指任一開發(fā)者不管他/她的Java Swing經(jīng)驗,都具有在幾分鐘而不是幾小時內(nèi)開發(fā)一個可運(yùn)行的GUI表單,因此就要是開發(fā)者的精力集中在商業(yè)邏輯上而不是框架的細(xì)節(jié)。一開始我們的開發(fā)者就需要所見即所得的環(huán)境,以便能夠真實地感知當(dāng)應(yīng)用程序發(fā)布的時候的情況。這一功能的實現(xiàn)節(jié)省了開發(fā)者的大量時間。但當(dāng)時我們評估的工具沒有一個能夠?qū)崿F(xiàn)這個功能;設(shè)計的屏幕與輸出的屏幕并不一樣還有糟糕的調(diào)度算法,對我們來說簡直就是巨大的倒退。AbaGUIBuilder通過預(yù)覽模式來實現(xiàn)這一功能,你可以在開發(fā)時看到它運(yùn)行起來的樣子。

為什么Abacus Research要求UI和商業(yè)邏輯的分離?因為企業(yè)要處理不斷變換的政府規(guī)則,例如稅收和工資計算;我們需要在一個獨(dú)立的包裝模塊里維護(hù)規(guī)則和公式時保持UI不變的能力,使得當(dāng)公式改變時,應(yīng)用程序JAR(UI)并不需要變化。因此只有改變的公式需要測試,使得發(fā)布的進(jìn)程簡單化。

為了滿足這個需求,我們設(shè)計的GUI編譯器將應(yīng)用程序和事件匯編到一個應(yīng)用程序JAR,JAR隱藏了所有的GUI Swing 代碼并且通過一個renderer類(AdaRenderer)在運(yùn)行時來執(zhí)行應(yīng)用程序。

Java Swing經(jīng)驗

為了確保開發(fā)工具能夠做到真正的所見即所得,我們決定采用類似Delphi和VB中用XY坐標(biāo)來定位的布局管理方式。采用這種方式,Swing JFrame就是一個畫布,開發(fā)者可以將Swing組件放入JFrame的XY布局中。有了XY布局管理器,我們的開發(fā)者不需要理解Swing中并不熟悉的,復(fù)雜的布局管理器,這樣我們的應(yīng)用程序開發(fā)者就可以把精力集中到應(yīng)用程序UI和它的商業(yè)邏輯中。

事實上,AbaGUIBuilder包含了大部分的Swing可視組件,從面板到制表符頁,還有對菜單﹑菜單項,帶有Java數(shù)據(jù)庫連接的數(shù)據(jù)庫感知組件,JFreeChart組件的支持,和導(dǎo)入第三方可視類庫的能力。所有這些組件都可以從組件選擇區(qū)拖入一個空框架來開發(fā)你的GUI應(yīng)用程序。

到此,相信大家對“Java Swing實例分析”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI