欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種Swing界面自動(dòng)構(gòu)成的方法與流程

文檔序號(hào):12664385閱讀:923來(lái)源:國(guó)知局

本發(fā)明涉及界面設(shè)計(jì)技術(shù)領(lǐng)域,尤其涉及一種Swing界面自動(dòng)構(gòu)成的方法。



背景技術(shù):

傳統(tǒng)JAVA程序開(kāi)發(fā)Swing界面,界面上元素的屬性、樣式、行為等全都定義在代碼中,代碼無(wú)法復(fù)用,耦合度高;與業(yè)務(wù)邏輯代碼混合不便于開(kāi)發(fā)和維護(hù);此外,如果想修改界面,就必須要對(duì)代碼進(jìn)行修改,再次編譯,降低了效率。

現(xiàn)有技術(shù)中公開(kāi)了“一種應(yīng)用軟件更新方法和裝置”,見(jiàn)公開(kāi)號(hào)為:CN105335201A,公開(kāi)日為:2016-02-17的中國(guó)專利,方案包括:下載完關(guān)于目標(biāo)功能的更新包后,從更新包中提取該目標(biāo)功能的目標(biāo)啟動(dòng)圖標(biāo),在相應(yīng)運(yùn)行界面輸出;檢測(cè)到目標(biāo)啟動(dòng)圖標(biāo)被啟動(dòng)的操作后,調(diào)起預(yù)定義組件;基于該更新包,通過(guò)JAVA語(yǔ)言的反射特性,生成啟動(dòng)該目標(biāo)功能所需的運(yùn)行參數(shù)和包括該目標(biāo)功能啟動(dòng)所需的對(duì)象的調(diào)用方法的運(yùn)行環(huán)境,在該運(yùn)行環(huán)境中創(chuàng)建該目標(biāo)功能運(yùn)行所需的類和工具對(duì)象,修改所需類的預(yù)定變量,根據(jù)該修改后的預(yù)定成員變量值,在調(diào)起的預(yù)定義組件的生命周期中通過(guò)該instrument對(duì)象和運(yùn)行參數(shù),調(diào)起關(guān)于該目標(biāo)功能運(yùn)行所需的對(duì)象的調(diào)用方法,以實(shí)現(xiàn)該目標(biāo)功能的啟動(dòng)。應(yīng)用該發(fā)明實(shí)施例可以實(shí)現(xiàn)應(yīng)用軟件的自動(dòng)更新與靜默偽安裝。該發(fā)明雖然也進(jìn)行了截面的更新,但是采用的技術(shù)跟本專利申請(qǐng)并不相同。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明要解決的技術(shù)問(wèn)題,在于提供一種實(shí)現(xiàn)了界面與業(yè)務(wù)邏輯的分離,提高了程序的可讀性和可維護(hù)性;提高了編程效率。

本發(fā)明是這樣實(shí)現(xiàn)的:一種Swing界面自動(dòng)構(gòu)成的方法,所述方法為:將所有Swing界面元素的屬性全都定義在一個(gè)XML文件中;需要生產(chǎn)界面時(shí),通過(guò)讀取XML文件解析數(shù)據(jù)來(lái)獲取界面元素的屬性;通過(guò)JAVA的反射技術(shù)來(lái)實(shí)現(xiàn)運(yùn)行時(shí)生成Swing(Swing是一個(gè)用于開(kāi)發(fā)Java應(yīng)用程序用戶界面的開(kāi)發(fā)工具包)界面。

進(jìn)一步的,對(duì)Swing界面修改時(shí),只要修改XML文件。

進(jìn)一步的,將所有Swing界面元素的屬性全都定義在一個(gè)XML文件中;其中,元素的屬性按照XML格式書寫,屬性包括名稱、坐標(biāo)、大小、以及父容器等;每一個(gè)節(jié)點(diǎn)代表一個(gè)UI控件,每一個(gè)特征attribute對(duì)應(yīng)控件的一個(gè)屬性,attribute預(yù)先在解析器中添加處理而獲得擴(kuò)展支持。

進(jìn)一步的,所述方法設(shè)置有界面元素解析模塊和各類Swing類型解析模塊,通過(guò)界面元素解析模塊和各類Swing類型解析模塊讀取XML文件進(jìn)行解析數(shù)據(jù),獲得界面元素的屬性,即每一個(gè)UI控件在XML用一個(gè)節(jié)點(diǎn)表示,通過(guò)XML讀取庫(kù),讀取XML文件,獲取每一個(gè)UI控件的節(jié)點(diǎn),再讀取相應(yīng)節(jié)點(diǎn)對(duì)應(yīng)的特征attribute,即可得到對(duì)應(yīng)界面元素屬性。

進(jìn)一步的,通過(guò)JAVA的反射技術(shù)來(lái)實(shí)現(xiàn)運(yùn)行時(shí)生成Swing界面具體為:一個(gè)UI控件對(duì)應(yīng)XML文件中的一個(gè)節(jié)點(diǎn),每一個(gè)節(jié)點(diǎn)中的attribute描述了這個(gè)控件的某項(xiàng)屬性;每個(gè)UI控件必然定義一個(gè)class屬性表明該對(duì)象的類;解析器獲取到UI控件的類名,調(diào)用對(duì)應(yīng)的類的解析器類,調(diào)用其生成控件的方式,以獲得對(duì)應(yīng)類型的控件。如XML文件中某一節(jié)點(diǎn)標(biāo)明class為Button,程序從所有的解析器中找到按鍵工具ButtonAnalyzer,調(diào)用它的生成控件方法,便獲得了一個(gè)按鈕對(duì)象。遍歷XML文件中的節(jié)點(diǎn),就獲得了全部的控件對(duì)象,實(shí)現(xiàn)生成界面。

本發(fā)明具有如下優(yōu)點(diǎn):一、實(shí)現(xiàn)了界面與業(yè)務(wù)邏輯的分離,提高了程序的可讀性和可維護(hù)性。(界面元素定義在單獨(dú)的XML文件中,程序代碼只需要專注于業(yè)務(wù)邏輯)

二、修改界面不需要修改代碼并重新編譯,只需要修改相應(yīng)的XML文件,更加地靈活。也提供了非開(kāi)發(fā)人員修改界面的渠道。(利用JAVA提供的反射技術(shù),實(shí)現(xiàn)了在程序運(yùn)行時(shí)獲取界面元素的類型并動(dòng)態(tài)生成相應(yīng)對(duì)象)。

附圖說(shuō)明

下面參照附圖結(jié)合實(shí)施例對(duì)本發(fā)明作進(jìn)一步的說(shuō)明。

圖1為本發(fā)明方法結(jié)構(gòu)示意圖。

具體實(shí)施方式

請(qǐng)參閱圖1所示,一種Swing界面自動(dòng)構(gòu)成的方法,所述方法為:將所有Swing界面元素的屬性全都定義在一個(gè)XML文件中;需要生產(chǎn)界面時(shí),通過(guò)讀取XML文件解析數(shù)據(jù)來(lái)獲取界面元素的屬性;通過(guò)JAVA的反射技術(shù)來(lái)實(shí)現(xiàn)運(yùn)行時(shí)生成Swing界面。后續(xù)對(duì)Swing界面修改時(shí),只要修改XML文件。

所述方法具體為:將所有Swing界面元素的屬性全都定義在一個(gè)XML文件中;其中,元素的屬性按照XML格式書寫,屬性包括名稱、坐標(biāo)、大小、以及父容器等。XML格式如:<Component id="readIDNo"class="JButton"parentid="openCard"text="讀二代證"x="0"y="0"width="20"height="10"/>如上例,表示一個(gè)坐標(biāo)為(0,0),長(zhǎng)20,寬10的按鈕,按鈕文字為“讀二代證”,自身id為"readIDNo",父容器為id為"openCard"的控件。同時(shí)可以通過(guò)預(yù)先修改解析器來(lái)實(shí)現(xiàn)更多屬性的支持。

解析模塊需要一個(gè)通用解析模塊(即界面元素解析模塊)以及針對(duì)各類Swing類型的解析模塊,根據(jù)XML文件中定義的內(nèi)容,通過(guò)JAVA反射技術(shù)生成對(duì)應(yīng)的對(duì)象。

所述方法設(shè)置有界面元素解析模塊和各類Swing類型解析模塊,通過(guò)界面元素解析模塊和各類Swing類型解析模塊讀取XML文件進(jìn)行解析數(shù)據(jù),獲得界面元素的屬性,即每一個(gè)UI控件在XML用一個(gè)節(jié)點(diǎn)表示,通過(guò)XML讀取庫(kù),讀取XML文件,獲取每一個(gè)UI控件的節(jié)點(diǎn),再讀取相應(yīng)節(jié)點(diǎn)對(duì)應(yīng)的特征attribute,即可得到對(duì)應(yīng)界面元素屬性。

通過(guò)JAVA的反射技術(shù)來(lái)實(shí)現(xiàn)運(yùn)行時(shí)生成Swing界面具體為:一個(gè)UI控件對(duì)應(yīng)XML文件中的一個(gè)節(jié)點(diǎn),每一個(gè)節(jié)點(diǎn)中的attribute描述了這個(gè)控件的某項(xiàng)屬性;每個(gè)UI控件必然定義一個(gè)class屬性表明該對(duì)象的類;解析器獲取到UI控件的類名,調(diào)用對(duì)應(yīng)的類的解析器類,調(diào)用其生成控件的方式,以獲得對(duì)應(yīng)類型的控件。

注:反射技術(shù)是java語(yǔ)言提供的一種在運(yùn)行狀態(tài)中,對(duì)于任意一個(gè)類,都能夠知道這個(gè)類的所有屬性和方法;對(duì)于任意一個(gè)對(duì)象,都能夠調(diào)用它的任意一個(gè)方法和屬性的方法。即通過(guò)反射可以使得程序能夠在運(yùn)行時(shí)調(diào)用任意一個(gè)類的任意方法。

XML是一種可擴(kuò)展標(biāo)記語(yǔ)言,很類似HTML,其標(biāo)簽沒(méi)有被預(yù)定義。需要自行定義標(biāo)簽。即上述內(nèi)容中用于描述Ui控件屬性的XML文件的內(nèi)容中,節(jié)點(diǎn)名、屬性名(即attribute)都可自行定義。

雖然以上描述了本發(fā)明的具體實(shí)施方式,但是熟悉本技術(shù)領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,我們所描述的具體的實(shí)施例只是說(shuō)明性的,而不是用于對(duì)本發(fā)明的范圍的限定,熟悉本領(lǐng)域的技術(shù)人員在依照本發(fā)明的精神所作的等效的修飾以及變化,都應(yīng)當(dāng)涵蓋在本發(fā)明的權(quán)利要求所保護(hù)的范圍內(nèi)。

當(dāng)前第1頁(yè)1 2 3 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
克拉玛依市| 永昌县| 河曲县| 汝南县| 盐津县| 禹州市| 绿春县| 濮阳县| 称多县| 屏东县| 大渡口区| 蒙自县| 汉阴县| 上虞市| 修文县| 扶风县| 黑山县| 武汉市| 莲花县| 秦安县| 阜城县| 科技| 新巴尔虎右旗| 高邮市| 黄山市| 兴义市| 榆树市| 麻江县| 沧州市| 凌源市| 穆棱市| 都昌县| 阜宁县| 上林县| 高淳县| 龙岩市| 台北县| 清徐县| 三河市| 荃湾区| 石渠县|