999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Java Synth生成XML的研究與實現

2008-12-31 00:00:00
電腦知識與技術 2008年34期

摘要:該文利用Java與XML技術,實現了基于Java Synth生成xml的定制工具;通過設置組件的屬性來定制組件風格,生成相應的XML文件;解決了開發人員利用Java Synth進行外觀設計時,在XML文件中描述數量繁多的組件屬性難題;節省了Java程序員編寫應用程序完整界面外觀的工作量,降低了軟件的開發成本。

關鍵詞:Java Synth;XML;風格定制

中圖分類號:TP311文獻標識碼:A文章編號:1009-3044(2008)34-2034-02

Rescarch and Implementation of Creating XML Base on Java Synth

ZHONG Juan

(School of Electronics and Information Engineering, Anhui University of Architecture, Hefei 230601, China)

Abstract: This paper uses Java and XML technology, implements customization toolkit of Creating XML Base on Java Synth; The key is to visually customize component LF through setting component properties and creates corresponding XML file; Solved the troublesome problem When a programmer utilizes Java Synth to design Look-and-Feel (LF), he needs describe lots of component properties; this already will save the Java programmer to compile an application procedure complete contact UI (User Interface) appearance of the work load, lower software's development cost.

Key words: Java Synth; XML; LF customization

1 引言

隨著軟件行業的發展,用戶對圖形界面質量的呼聲越來越高,從而使軟件工程師在界面風格上花費的精力越來越多。系統的開發周期越來越長、開發成本越來越高。Sun公司推出的J2SE5.0版本引入了Swing Synth,一種新的Look And Feel“皮膚”外觀切換技術,使Java在用戶界面(UI)領域邁上一個新臺階。然而,開發人員利用Synth進行外觀設計時,需要在XML文件中描述數量繁多的組件屬性和遵循Synth DTD格式,這對程序員來說比較繁瑣。鑒于此,本文研究并實現了基于Java Synth生成xml的定制工具。Java程序員可把定制的組件外觀直接應用到Java文件中,不需要修改任何Java源代碼,使Java程序的界面面貌煥然一新。從而節省了Java程序員的工作量,降低了軟件的開發成本,提高了軟件的開發效率,推進了軟件行業的發展。

2 Java Synth

Synth是一個全新的,完整的外觀,利用Synth是要修改XML文件,通過裝入不同的XML文件,就可有一個全新的外觀。Synth是J2SE5.0里新引入的Swing內容。Synth是用戶自定義的界面工具,是Sun提供的一種新的Look And Feel,是通過配置文件進行定義的,插入式的Look And Feel。規定了內置謂詞近100個,包含字符處理、表處理、輸入輸出、數據庫處理、異常處理等幾個方面。Synth的DTD即Synth XML文件的主要構件,用它來設置不同的組件外觀保存為相應的Synth XML文件即.xml,然后再通過Java文件按一定的格式載入它,就可顯示用戶所要的組件風格了。

3 XML技術與Java相結合的應用

XML的出現為Java帶來了一個機遇,XML是對Java的完善。同時Java為XML提供了易于使用的代碼,XML為Java提供了數據。Java和XML可以很好的結合,Java和XML的應用主要表現在:面向消息的計算(比如遠程過程調用XML.RPC,SOAP協議,電子化業務XML(ebXML))、用戶界面相關的用來表示相關的上下文(如可擴展樣式表語言XSL、可擴展樣式表語言轉換XSLT)、以及數據的表示和交換等多方面。本文主要應用了Java與XML結合的用于數據表示和交換方面。

4 生成xml的工具模型

用戶可根據自己的要求設置不同組件的各個屬性,若滿意則保存,系統會自動生成相應組件風格的XML文件。由于不同組件有不同的屬性,同種組件在不同狀態下,對應的組件屬性也不一定相同,并且對于不同的狀態對應著不同的組件屬性,要實現組件的功能屬性,必然需要它具有一定的特點,那么用一個共同的“容器”把對應的組件的屬性組裝起來,本系統把此“容器”稱為屬性編輯器模型。通過此模型,用戶可以在組件某種特殊的狀態下,對一個選定的組件進行有關屬性的設計;本編輯器模型即具有表格性質又具有樹型結構。

5 生成xml的工具關鍵實現

要實現上述的功能,自然要求屬性編輯器具有調用其它功能模塊的接口。編輯器擁有的組件屬性Background、Foreground、Opaque、Text Background、Text Foreground、Font Style 、Insets、Image Location、Source Insets、Destionation Insets、Stretch、Paint Center、Icon等。當用戶定制好組件風格屬性后,點擊保存按鈕,系統會自動調用writeXMLFile (String outFile)方法,生成用戶定制的組件風格的.xml文件。本系統用封裝在org.w3c.dom包中的類作為DOM的實現,用Javax.xml.parsers.*作為XML的解析器接口;用第三方提供的軟件包——org.apache.crimson.tree.XmlDocument,寫XML文件。那么,方法writeXMLFile (String outFile)的部分實現代碼為:

protected void writeXMLFile(String outFile) throws Exception {

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();

DocumentBuilder db = 1;

try { db = dbf.newDocumentBuilder();

}

catch (ParserConfigurationException pce) {

System.err.println(pce);

System.exit(1);

}

Document doc = 1;

doc = db.newDocument();

Element root = doc.createElement(\"synth\");

doc.appendChild(root);

Element style = doc.createElement(\"style\");

style.setAttribute(\"id\",propertyEditor.getComponentName());

root.appendChild(style);

Element opaque = doc.createElement(\"opaque\");

opaque.setAttribute(\"value\",String.valueOf(propertyEditor.isOpaque()));

style.appendChild(opaque);

Element state = doc.createElement(\"state\");

state.setAttribute(\"value\",propertyEditor.getMouseState(selectedIndex));

style.appendChild(state);

…………………………..

FileOutputStream outStream = new FileOutputStream(outFile);

OutputStreamWriter outWriter = new OutputStreamWriter(outStream);

( (XmlDocument) doc).write(outWriter, \"GB2312\");

outWriter.close();

outStream.close();

}

在上面的代碼中,有類似propertyEditor.getComponentName()這樣的語句,在本系統中propertyEditor是實現保存當前用戶定制組件風格屬性的一個類EditorProperty的一個對象,而getComponentName()是在屬性編輯類EditorProperty中的一個方法。本系統就是用這個屬性編輯類的一個對象來引用此類不同屬性對應的方法,把當前用戶定制的組件屬性風格值取出而得到的。整個編輯器實現的界面如圖1所示,生成對應的某個xml文件如圖2所示。

圖1 屬性編輯器界面圖圖2 xml文件圖

6 結論

本文通過對Java Synth以及XML技術的研究和分析,提出了一種生成xml的工具模型,實現了一個基于Java Synth生成xml的工具系統。實踐表明用戶通過本系統進行定制組件外觀,能夠大大縮短軟件系統的開發周期,提高軟件開發質量,降低開發成本,使應用程序外觀的個性化過程變的更加容易,使軟件行業發展更加迅速。

參考文獻:

[1] 方美琪.XML及其在電子商務中的應用[M].北京:清華大學出版社,2003.

[2] Abernethy M.Advancee Synth[EB/OL].(2005-02-10).http://www-128.ibm.com/developerworks/Java/library/j-synth/?STAC-T=105AGX52S_CMP=cn-a-j.

[3] Sun Microsystems,Inc.JDKTM 5.0 Documentation[EB/OL].http://Java.sun.com/j2se/1.5.0/docs/index.html.

[4] 張洪斌.成功通過Sun認證Java2程序員考試[M].北京:北京科海集團公司,2006.

[5] 陳張.基于Java技術的工作流管理系統的研究與開發[D].上海:同濟大學,2006.

[6] 陳偉波.Java實例[EB/OL].http://www.Java3z.com/cwbwebhome/Javacode.jsp.

[7] 薩密.電子商務實現采用Java技術和基于XML技術[D].上海:同濟大學,2006.

主站蜘蛛池模板: 91精品网站| 97综合久久| 日韩经典精品无码一区二区| 97久久免费视频| 亚洲成aⅴ人在线观看| 伊人丁香五月天久久综合| 直接黄91麻豆网站| 亚洲啪啪网| 欧美区一区二区三| 国产在线精品人成导航| 中文字幕 91| 日韩无码黄色网站| 欧美全免费aaaaaa特黄在线| 中文字幕在线播放不卡| 国产午夜福利在线小视频| 久久毛片网| 波多野结衣AV无码久久一区| 国产精品理论片| 免费a级毛片18以上观看精品| 国产日韩精品欧美一区喷| 69精品在线观看| 欧美日本在线观看| 国产大片喷水在线在线视频| 日韩a级毛片| 国产乱肥老妇精品视频| 久久亚洲国产一区二区| 欧美成在线视频| 国产h视频在线观看视频| 国产精品美女网站| 国产男人的天堂| 精品视频在线一区| 日韩第九页| 九九九国产| 国产乱子伦一区二区=| 香蕉久人久人青草青草| 日韩精品免费在线视频| 国内精品九九久久久精品 | 亚洲精品中文字幕午夜| 国产欧美日韩精品第二区| 亚洲欧美极品| 亚洲男人天堂久久| 无码一区18禁| www.亚洲一区二区三区| 亚洲欧洲一区二区三区| 亚洲日本一本dvd高清| 欧美日韩第三页| 国产精品美乳| 亚洲人成成无码网WWW| 波多野结衣久久精品| 岛国精品一区免费视频在线观看 | 国产91在线|中文| 在线观看免费人成视频色快速| 亚洲国模精品一区| 91亚洲免费视频| 亚洲成在人线av品善网好看| 久久青草免费91线频观看不卡| 久久免费看片| 亚洲中文字幕在线观看| 九月婷婷亚洲综合在线| 青青青草国产| 国产97视频在线观看| 高清国产va日韩亚洲免费午夜电影| 91综合色区亚洲熟妇p| 丝袜亚洲综合| 色哟哟国产精品| 色有码无码视频| 一区二区三区四区精品视频| 国产精品无码AV中文| 亚洲av日韩av制服丝袜| 国产91色在线| 性69交片免费看| 国产成人久久777777| 人妖无码第一页| 天天色综网| 亚洲自拍另类| 亚洲天堂视频在线观看免费| 国产SUV精品一区二区6| www.精品国产| 国产综合日韩另类一区二区| 在线观看国产黄色| 噜噜噜久久| AV熟女乱|