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

基于XML的界面感觀設(shè)計(jì)

2008-12-31 00:00:00葉成蔭
商場(chǎng)現(xiàn)代化 2008年34期

[摘要] 一個(gè)應(yīng)用軟件良好的可用性取決于軟件的外觀和行為,即觀感。而用java的傳統(tǒng)方法去設(shè)計(jì)一個(gè)觀感不僅技術(shù)復(fù)雜,而且外觀不友好。利用XML語(yǔ)言,在java的synth類的基礎(chǔ)上去設(shè)計(jì)一個(gè)觀感,則不僅可以使任務(wù)大大簡(jiǎn)化,而且界面美觀。在jdk1.5以上的平臺(tái)上進(jìn)行測(cè)試,結(jié)果運(yùn)行良好。

[關(guān)鍵詞] XML 觀感 synth類

一、引言

一個(gè)應(yīng)用軟件的良好的可用性取決于軟件的外觀和行為,即觀感。一致的觀感不僅有助于用戶快速的和高效的掌握應(yīng)用軟件的使用,而且有助于用戶觸類旁通。

一個(gè)具有良好界面感觀設(shè)計(jì)的應(yīng)用軟件應(yīng)體現(xiàn)在以下幾個(gè)方面:

1.邏輯組織。軟件的感觀設(shè)計(jì)應(yīng)與用戶欲完成的任務(wù)在邏輯上一致。

2.可伸縮性。窗口應(yīng)是可伸縮的,以便用戶在窗口中能夠找到所需的內(nèi)容。

3.可預(yù)見(jiàn)性。使用戶依據(jù)經(jīng)驗(yàn)即可預(yù)見(jiàn)組件的功能。

4.響應(yīng)性。組件的響應(yīng)應(yīng)迅速快捷,在用戶的容忍范圍之內(nèi)。

若要達(dá)到上述目標(biāo),在Java中,使用Swing UI進(jìn)行代碼編寫和文檔編制是十分困難的,常常是亂雜一氣,缺乏規(guī)劃。為了創(chuàng)建良好感觀,開(kāi)發(fā)人員需要繼承Metal感觀觀的39個(gè)類,或者繼承Basic感觀的60個(gè)類。本文在討論XML和Java技術(shù)的基礎(chǔ)上,提出了一種界面感觀方案設(shè)計(jì),可使開(kāi)發(fā)人員的任務(wù)的復(fù)雜程度大大降低。

二、傳統(tǒng)的Java界面感觀設(shè)計(jì)

在Java中,Swing程序在缺省情況下使用Metal觀感,可以采用兩種方式來(lái)設(shè)計(jì)觀感。第一種方式是在Java安裝的子目錄jre/lib下有一個(gè)文件swing.properties。在這個(gè)文件中,將屬性swing.defaultlaf設(shè)置為所希望的觀感類名。例如,

Swing.defaultlaf=com.sun..java.swing.plaf.motif.MotifLookAndFeel

第二種方式需要調(diào)用靜態(tài)的UIManager.setLookAndFeel方法,并提供所想要的觀感類名,然后再調(diào)用靜態(tài)方法SwingUtilities.updateComponentTreeUI來(lái)刷新全部的組件集。這里需要向這個(gè)方法提供一個(gè)組件,并由此找到其他的所有組件。例如,

String plaf = \"com.sun.java.swing.plaf.motif.MotifLookAndFeel\";

try{

UIManager.setLookAndFeel(plaf);

SwingUtilities.updateComponentTreeUI(panel);

}catch(Exception e) { e.printStackTrace(); }

在Java中,默認(rèn)提供了Metal觀感、Motif觀感和Windows觀感三種。這三種形式風(fēng)格比較單一,缺乏個(gè)性化,設(shè)計(jì)不靈活。下面采取一種新的方法來(lái)設(shè)計(jì)界面感觀。

三、基于XML的界面感觀設(shè)計(jì)

1.XML基礎(chǔ)

在Java中,可以把對(duì)外觀的所有描述從代碼中分離出來(lái),將其放入外部的XML文件和圖像文件中,讓開(kāi)發(fā)人員不必編寫任何代碼就可以創(chuàng)建新的外觀。從而減輕開(kāi)發(fā)人員的負(fù)擔(dān),提高工作效率。

應(yīng)用XML文件創(chuàng)建感觀的步驟如下:

(1)應(yīng)用

(2)應(yīng)用標(biāo)簽將組件風(fēng)格與組件關(guān)聯(lián)。例如,

要注意的是: 標(biāo)簽中的 key 屬性映射到 javax.swing.plaf.synth.Region 類中的常量。

2.XML文件加載

在Java中,XML文件的加載需要使用synth引擎,即javax.swing.plaf.synth類。Synth 是一個(gè)白板外觀,是一塊完全空白的畫(huà)布,表現(xiàn)為一個(gè)完全空白的面板,只有在 XML 文件中定義了組件風(fēng)格時(shí),它才會(huì)顯示組件。XML文件加載的方式如下,

(1)為感觀的定義提供基礎(chǔ)。

SynthLookAndFeel synth = new SynthLookAndFeel();

(2)加載XML文件。

synth.load(Demo.class.getResourceAsStream(\"demo.xml\"), Demo.class);

(3)應(yīng)用新的感觀。

UIManager.setLookAndFeel(synth);

3.XML文件舉例

(1)設(shè)置字體和顏色。①設(shè)置顏色。color標(biāo)簽本身需要value和type兩個(gè)屬性。

value可以是 java.awt.Color 包中的任何常量。可以采用字符串的形式表示,例如 RED、BLUE;也可以采用顏色的十六進(jìn)制表示,例如 #669966。

type描述文件設(shè)置哪個(gè)區(qū)域的顏色,其值有 BACKGROUND、FOREGROUND、TEXT_FOREGROUND、TEXT_BACKGROUND 和 FOCUS。

②設(shè)置字體。font 標(biāo)簽有兩個(gè)基本屬性和一個(gè)可選屬性。這三個(gè)屬性直接映射到 java.awt.Font 類中的三個(gè)參數(shù),name,size和style。

Name是字體的名稱,其值是用戶計(jì)算機(jī)上所安裝的字體庫(kù),例如,Verdana、Arial等。

size 是字體大小,以像素為單位。

Style它的值為 BOLD ,ITALIC和BOLD ITALIC。

(2)應(yīng)用圖像。可以使用圖像來(lái)創(chuàng)建諸如文本域、按鈕等控件的邊框。圖像被9個(gè)區(qū),它們分別是頂部、右上、右部、右下、底部、左下、左部、左上和中間,如圖所示。

圖 圖像分區(qū)

在這些分區(qū)中,左部和右部可以上下拉伸,頂部和底部可以左右拉伸,其余部分固定不變。在XML文件中由imagePainter 標(biāo)簽來(lái)設(shè)定。它有以下幾個(gè)屬性。

path 屬性提供所使用的圖像的路徑。

sourceInsets 屬性按像素計(jì)算依次映射到頂部的高度、左部的寬度、底部的高度和右部的寬度。

method 屬性直接映射到 javax.swing.plaf.synth.SynthPainter 類中的一個(gè)函數(shù)。每個(gè)函數(shù)映射到一個(gè) Swing 組件中某個(gè)特定的繪畫(huà)任務(wù)。

paintCenter屬性允許保留或者舍棄圖像的中間區(qū)域。

(3)XML文件舉例。應(yīng)用以上信息來(lái)設(shè)計(jì)一個(gè)文本域(textfield)的感觀設(shè)計(jì),代碼如下。

四、結(jié)束語(yǔ)

本文討論了在XML文件的基礎(chǔ)上,利用Java技術(shù)進(jìn)行界面感觀設(shè)計(jì)。應(yīng)用XML可以將界面感觀設(shè)計(jì)從編寫大量的Java代碼的工作中分離出來(lái)。從而,減輕技術(shù)開(kāi)發(fā)人員的負(fù)擔(dān),提高工作效率。此外,使用這種方法可以使技術(shù)開(kāi)發(fā)人員不必具有較高的藝術(shù)才能和繪圖本領(lǐng)。

以上程序是在jdk5.0以上平臺(tái)測(cè)試完成的,并取得了較好的感觀效果。本文只對(duì)標(biāo)簽和文本域等組件進(jìn)行了設(shè)計(jì),下一步研究的重點(diǎn)是對(duì)一些復(fù)雜的組件進(jìn)行設(shè)計(jì)。

參考文獻(xiàn):

[1]Sun Microsystems,Java Look and Feel Design Guidelines: Advanced Topics[M].addison Wesley,2001

[2] Cay S. Horstman,Core Java 2 Volume I Fundamentals: 8th Edition[M],2007,334~335

[3]Java documents, Modifying the Look and Feel[OL]. http://java.sun.com/docs/books/tutorial/uiswing/examples/lookandfeel/index.html

[4 ]Michael Abernethy, Advanced Synth[OL]. http://www.ibm.com/developerworks/java/library/j-synth/

[5] Java documents[OL]. http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/plaf/synth/package-summary.html

[6] Scott Violet, The Synth Look and Feel[OL].http://www.javadesktop.org/articles/synth/index.html

主站蜘蛛池模板: 麻豆国产精品| 在线看片中文字幕| 456亚洲人成高清在线| 亚洲国产精品人久久电影| 高h视频在线| 久久久久中文字幕精品视频| 国产微拍一区二区三区四区| 亚洲欧美在线精品一区二区| 中国一级特黄大片在线观看| 高潮爽到爆的喷水女主播视频| 国产清纯在线一区二区WWW| 国产午夜小视频| 色综合国产| 亚洲综合片| 夜夜操国产| 丰满少妇αⅴ无码区| 日韩福利在线观看| 国产91无码福利在线 | 午夜毛片免费观看视频 | 一区二区欧美日韩高清免费| 在线观看91香蕉国产免费| 国产精品伦视频观看免费| 精品五夜婷香蕉国产线看观看| 国产精品嫩草影院视频| 国产一区二区网站| 高清码无在线看| 亚洲日韩久久综合中文字幕| 成人在线天堂| 天堂岛国av无码免费无禁网站| 真人高潮娇喘嗯啊在线观看| 91欧美亚洲国产五月天| 色妞www精品视频一级下载| 国产乱子伦精品视频| 福利视频久久| 日本亚洲欧美在线| 久久精品aⅴ无码中文字幕| 91在线播放免费不卡无毒| 欧美日韩国产在线人成app| 欧美中出一区二区| 啦啦啦网站在线观看a毛片| 欧美第九页| 精品福利网| 91视频精品| 国产91视频免费观看| 人妻21p大胆| 久久永久视频| 成人午夜视频网站| 精品国产福利在线| 51国产偷自视频区视频手机观看| 嫩草在线视频| 好久久免费视频高清| 国产一区二区免费播放| 日韩大乳视频中文字幕| 精品久久国产综合精麻豆| 亚洲h视频在线| 91成人精品视频| 思思99思思久久最新精品| 91人人妻人人做人人爽男同| 在线观看免费国产| 久久鸭综合久久国产| 色有码无码视频| 97se亚洲综合不卡| 国产91视频免费| 亚洲日本一本dvd高清| 国产情精品嫩草影院88av| 日韩黄色大片免费看| 伊人久久久久久久| 亚洲人成网线在线播放va| 人妻一区二区三区无码精品一区| 成人精品在线观看| a级毛片一区二区免费视频| 午夜限制老子影院888| 97亚洲色综久久精品| 欧美另类一区| 在线免费观看a视频| 日韩二区三区| AV不卡国产在线观看| 伦精品一区二区三区视频| 日本成人在线不卡视频| 999福利激情视频| 亚洲Av综合日韩精品久久久| 在线看国产精品|