• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于XML的界面自動生成設(shè)計與實現(xiàn)

      2009-03-02 09:33:14
      新媒體研究 2009年2期
      關(guān)鍵詞:監(jiān)聽文檔組件

      張 娟 王 艷

      [摘要]首先對界面自動生成的原理進行介紹,然后從界面描述文件、界面組建庫設(shè)計、界面組建事件監(jiān)聽類、界面自動生成器設(shè)計和XML文檔復(fù)用這五個方面進行設(shè)計和介紹。

      [關(guān)鍵詞]XML 界面自動生成

      中圖分類號:TP3文獻標(biāo)識碼:A文章編號:1671-7597(2009)0120082-01

      用戶界面是軟件系統(tǒng)的重要組成部分,它主要負(fù)責(zé)接收用戶的輸入信息并顯示程序處理的結(jié)果。隨著軟件系統(tǒng)規(guī)模的不斷擴大,開發(fā)用戶界面所耗費的時間和成本也將成倍增加,因此,怎樣在較短的時間內(nèi)設(shè)計出符合用戶要求的用戶界面,提高用戶界面的開發(fā)效率成了急待解決的一個問題。

      一、界面自動生成理論

      基于XML的界面自動生成技術(shù)涉及界面描述的XML文檔、界面組件事件監(jiān)聽類、界面生成器、編程語言的組件庫和界面定制工具。界面生成器通過解析界面描述XML文檔,調(diào)用編程語言的組件庫構(gòu)建組件,為組件綁定相應(yīng)的事件監(jiān)聽類,自動生成所需要的用戶界面。

      要生成一個界面,首先要提供界面描述XML文檔和界面組件事件監(jiān)聽類。界面描述XML文檔使用XML描述界面上所有組件及其屬性,包括名稱、大小、位置、布局以及與之相對應(yīng)的事件監(jiān)聽類等。界面描述XML文檔可以用XML編輯器來編寫,也可以從其他數(shù)據(jù)源自動生成。界面組件事件監(jiān)聽類負(fù)責(zé)監(jiān)聽并處理對應(yīng)界面描述XML文檔中組件的事件,比如按鈕點擊事件等,由組件事件引發(fā)的一系列操作都由該類來實現(xiàn)。在界面描述XML文檔的解析過程中,界面生成器會根據(jù)文檔中的組件事件屬性值把事件監(jiān)聽類動態(tài)加載進來,并與對應(yīng)的組件綁定。當(dāng)某一組件的事件被觸發(fā)時,就會執(zhí)行它的事件監(jiān)聽類中定義的操作。

      二、自動生成界面設(shè)計和實現(xiàn)

      界面自動生成技術(shù)由界面定制工具、界面描述文件(XML)、界面組件事件監(jiān)聽類、組件庫、界面自動生成器及生成的界面六大部分組成。在本方案中,還加上了查詢到的XML和具有復(fù)用價值的XML文檔來增加XML文檔的可復(fù)用性。

      要生成一個界面首先要啟動一個界面自動生成器,來讀取界面描述文件XML文檔,該文件描述了界面中每個組件的具體信息,如組件類型、名字、對應(yīng)的類名、事件監(jiān)聽類名、位置、尺寸以及響應(yīng)事件和范圍限制屬性等。界面自動生成器根據(jù)這些描述信息對界面中的每個組件進行布局,并增加組件的事件監(jiān)聽功能。每個生成的界面都對應(yīng)一個界面自動生成器對象,它除了負(fù)責(zé)生成界面外,還負(fù)責(zé)保存界面中的所有組件信息及一些界面中使用的全局變量,供事件監(jiān)聽類中的方法使用。

      界面自動生成器需要識別界面描述文件中的各種組件類型。因此,就必須定義一個組件庫,使用組件庫中的組件可以很方便地構(gòu)建符合要求的配置界面。當(dāng)然,界面自動生成器也可以讀取一個不屬于該組件庫中的組件,前提是該組件必須是JComponent的子類。界面自動生成器將按照該組件原本的樣式顯示該組件,并由組件自己完成事件監(jiān)聽的功能。自動生成界面的步驟如下:

      第一步:根據(jù)顯示界面需要編寫界面描述XML文件,這步由可由界面定制工具輔助實現(xiàn)。

      第二步:讀取前臺設(shè)備的硬件數(shù)據(jù),生成界面初始數(shù)據(jù),并設(shè)置到相應(yīng)的組件中。

      第三步:初始化界面生成器。

      第四步:界面生成器讀取界面描述的XML文件。

      第五步:界面生成器根據(jù)描述信息創(chuàng)建界面元素,進行布局并顯示界面。具體包括:①將XML文件中的組件元素進行分離,按照每個組件的尺寸和位置進行界面布局,對于容器組件使用遞歸方法進行解析;②將初始數(shù)據(jù)設(shè)置到各個相應(yīng)的組件中;③完成組件的事件監(jiān)聽。對于組件庫內(nèi)的組件,界面生成器根據(jù)XML文件中定義的組件事件類名,運用JAVA的類反射機制實現(xiàn)該事件類的監(jiān)聽功能;對于組件庫外的JComponent類的子類組件,由組件自己完成事件監(jiān)聽功能。

      (一)界面描述文件的實現(xiàn)

      界面描述文件使用XML語言來描述,既不能過于簡單,也不能過于復(fù)雜,其表達內(nèi)容包括:①界面主菜單結(jié)構(gòu)的定義;②字段定義或者屬性的描述信息,包括屬性的類型、屬性名稱、屬性是否為主鍵、屬性的值來源類(比如,如果顯示為一個列表框,則可以定義列表框的值來源,可以對應(yīng)于server端的一個業(yè)務(wù)規(guī)則,也可以對應(yīng)于一組固定的值列表)、屬性是否可以編輯、屬性的事件響應(yīng)類;③界面元素的上下文action、action的界面處理方法的定義(應(yīng)用可以定義處理方法類來實現(xiàn)擴展);④界面元素的導(dǎo)航關(guān)系的定義;⑤界面元素的層次關(guān)系的定義等等。

      XML文檔第一部分包含一些界面初始化的定義,像、表示界面的尺寸,中可以填寫一個初始化的類的名字,該類必須繼承基類InitAction?;愔挥幸粋€方法public void doAction(),用戶應(yīng)該在子類中覆蓋這個方法。此方法將會在界面的所有組件實例化后執(zhí)行,因此用戶可以在此方法中寫一些設(shè)定組件初始值的功能。XML描述文檔的后面是對每個組件的描述。

      (二)界面組件庫設(shè)計

      組件庫的組件封裝了一些獨特的屬性,以實現(xiàn)一定的功能。表1顯示了文本框componentLibrary組件的屬性。

      (三)組件監(jiān)聽類設(shè)計

      事件監(jiān)聽類的名稱在XML文件中標(biāo)識,就是上文所說的action標(biāo)簽中填寫的類名,由街面生成器負(fù)責(zé)實例化和加載到對應(yīng)組件上。每個組件類都對應(yīng)一個事件監(jiān)聽的基類?;愄峁┝艘恍┍O(jiān)聽事件的方法,通常是空的方法,用戶定制的事件監(jiān)聽類只需要覆蓋這些監(jiān)聽事件方法就可以實現(xiàn)對事件的監(jiān)聽。例如componentLibrary組件對應(yīng)的action基類是TextFieldAction,

      該類封裝了componentLibrary的事件監(jiān)聽,包括回車鍵事件和焦點丟失事件。用戶要實現(xiàn)一個componentLibrary組件的事件監(jiān)聽,就必須編寫一個新的類,該類繼承TextFieldAction并覆蓋TextFieldAction中的一些方法。在每個action基類componentLibrary中都提供了public GUIEngine getGe()方法,通過使用該方法可以獲取當(dāng)前界面對應(yīng)的GUIEngine對象,獲取了GUIEngine對象,就可以在事件方法中操縱界面中的任何元素。

      (四)界面自動生成器設(shè)計和實現(xiàn)

      界面自動生成器處于整個界面自動生成系統(tǒng)的核心地位,一方面向應(yīng)用提供API(Application Programming Interface,應(yīng)用編程接口),由應(yīng)用調(diào)用來創(chuàng)建界面;另一方面向應(yīng)用提供數(shù)據(jù)操作接口,通過配置管理內(nèi)部提供的數(shù)據(jù)庫接口實現(xiàn)對數(shù)據(jù)庫數(shù)據(jù)的增刪、查改。界面自動生成器使用界面描述語言作為輸入,實現(xiàn)界面的自動化生成和處理。界面自動生成器類是GUIEngine,該類解析界面描述的XML文檔,讀取XML描述文檔中的所有節(jié)點,并根據(jù)節(jié)點描述生成相應(yīng)的組件,綁定組件事件監(jiān)聽器,將組件按照界面的XML描述文件中的定位顯示。

      界面器的構(gòu)造函數(shù)是public GUIEngine(InitData InitData)。其中InitData是一個接口類,該接口中包括了界面初始化的必要信息,例如節(jié)點信息、界面組件初始數(shù)據(jù)、XML文檔信息等。

      public JComponent createComponent()方法是界面器的核心方法,它讀取XML文檔中組件的相關(guān)描述并構(gòu)造界面中的組件對象,最后將組件放在一個JComponent容器中,并返回。該方法從界面描述文件中讀取組件信息,并判斷組件的類型,根據(jù)不同的組件類型調(diào)用不同的組件的構(gòu)造方法,生成組件對象。如果從獲得的子節(jié)點解析得到的組件不是GUIEngine中預(yù)先定義的組件,則認(rèn)為該組件是用戶自定義的,將該組件按用戶定義的樣式添加到組件容器中去;如果該組件描述錯誤,則給用戶提供一個出錯信息。該方法最后根據(jù)界面描述文檔中各個組件的定位以及控件大小的描述,來設(shè)置組件的大小以及在組件容器中擺放的位置。

      對于組件庫中的組件,界面自動生成器都有一個與之對應(yīng)的方法來生成該組件對象,并完成action事件的添加。而Create componentLibrary方法的主要功能就是生成一個componentLibrary組件對象,并根據(jù)描述該組件的XML對象描述的內(nèi)容,為該組件添加相應(yīng)的action。

      (五)XML文檔的復(fù)用

      在用XML描述界面信息的基礎(chǔ)上,用XML的查詢技術(shù)如Xquery,XPath等進行模型信息的查詢,可將以前的系統(tǒng)開發(fā)所獲得的界面信息用XML文件的形式存儲起來,并組織成一個界面信息庫。對于界面信息的查詢,可以分別從名稱、描述信息、XML文檔中定義的元素和屬性等關(guān)鍵字進行查詢,也可以綜合上述各方面進行復(fù)合查詢。將查詢到的界面描述信息經(jīng)修改和擴展就可加入到新工程的設(shè)計中,能夠大大提高開發(fā)效率。

      參考文獻:

      [1]張敦華,一種界面自動生成技術(shù)[J].計算機與數(shù)字工程.2004 (5).

      [2]徐龍杰,建成.基于模型的用戶界面代碼自動生成.計算機工程與應(yīng)用. 2004(12).

      [3]Mike Jasonwski.Java,XML,and Web Service Bible[M].電子工業(yè)出版社.2002.

      [4]吳桂陽,建成,清國,成柱.基于XML的界面模板技術(shù).計算機應(yīng)用研究. 2004(10).

      [5]李大成,陳莘萌. Java與XML的結(jié)合應(yīng)用[J].計算機應(yīng)用.2002 (2).

      作者簡介:

      張娟,女 河南許昌人,鄭州大學(xué)升達經(jīng)貿(mào)管理學(xué)院助教,在讀碩士,研究方向:軟件工程,計算機應(yīng)用; 王艷,女 河南淮濱人,鄭州大學(xué)升達經(jīng)貿(mào)管理學(xué)院助教,在讀碩士,研究方向:計算機網(wǎng)絡(luò),數(shù)據(jù)庫技術(shù)。

      猜你喜歡
      監(jiān)聽文檔組件
      無人機智能巡檢在光伏電站組件診斷中的應(yīng)用
      能源工程(2022年2期)2022-05-23 13:51:50
      有人一聲不吭向你扔了個文檔
      千元監(jiān)聽風(fēng)格Hi-Fi箱新選擇 Summer audio A-401
      新型碎邊剪刀盤組件
      重型機械(2020年2期)2020-07-24 08:16:16
      U盾外殼組件注塑模具設(shè)計
      網(wǎng)絡(luò)監(jiān)聽的防范措施
      電子制作(2017年20期)2017-04-26 06:58:02
      基于RI碼計算的Word復(fù)制文檔鑒別
      Persistence of the reproductive toxicity of chlorpiryphos-ethyl in male Wistar rat
      應(yīng)召反潛時無人機監(jiān)聽航路的規(guī)劃
      風(fēng)起新一代光伏組件膜層:SSG納米自清潔膜層
      太陽能(2015年11期)2015-04-10 12:53:04
      章丘市| 夏邑县| 吐鲁番市| 宣武区| 广灵县| 夏邑县| 贺州市| 石狮市| 宁南县| 宣汉县| 赤城县| 建湖县| 张家界市| 太保市| 齐齐哈尔市| 平武县| 潼南县| 同仁县| 黄龙县| 叶城县| 富蕴县| 旬阳县| 文山县| 米林县| 荆门市| 乌兰县| 定远县| 黎平县| 顺昌县| 绍兴县| 建阳市| 元阳县| 马公市| 敦化市| 田阳县| 沾益县| 铜川市| 兴义市| 报价| 南投县| 汉中市|