用戶界面組件課件

用戶界面組件課件

ID:18696623

大?。?.07 MB

頁數(shù):73頁

時(shí)間:2018-09-21

用戶界面組件課件_第1頁
用戶界面組件課件_第2頁
用戶界面組件課件_第3頁
用戶界面組件課件_第4頁
用戶界面組件課件_第5頁
資源描述:

《用戶界面組件課件》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫

1、Swing用戶界面組件模型-視圖-控制器設(shè)計(jì)模式每個(gè)組件有三個(gè)要素內(nèi)容,如按鈕的狀態(tài)(是否按下),或者文本域的文本;外觀,顏色,大小等;行為,對事件的反應(yīng);三要素之間的關(guān)系復(fù)雜Java模型-視圖-控制器設(shè)計(jì)模式Swing設(shè)計(jì)者采用了一種著名的設(shè)計(jì)模式:模型-視圖-控制器(model-view-controller)模式來實(shí)現(xiàn)組件的設(shè)計(jì)。實(shí)現(xiàn)一個(gè)組件有三個(gè)獨(dú)立的類:模型(model):存儲(chǔ)內(nèi)容;視圖(view):顯示內(nèi)容;控制器(controller):處理用戶輸入;Java模型-視圖-控制器設(shè)計(jì)模式模型只存儲(chǔ)內(nèi)容,必須實(shí)現(xiàn)改變內(nèi)容和查找內(nèi)容

2、的方法。如,一個(gè)文本模型中的方法有:在當(dāng)前文本中添加或者刪除字符以及把當(dāng)前文本作為一個(gè)字符串返回等;模型完全不可見,視圖顯示存儲(chǔ)在模型中的數(shù)據(jù);控制器負(fù)責(zé)處理用戶輸入事件,如點(diǎn)擊鼠標(biāo)和敲擊鍵盤。然后決定是否把這些事件轉(zhuǎn)化為對模型或視圖的改變;Java模型-視圖-控制器設(shè)計(jì)模式Java模型、視圖、控制器對象之間的交互模型-視圖-控制器設(shè)計(jì)模式Swing按鈕的模型-視圖-控制器分析對于大多數(shù)組件,模型類實(shí)現(xiàn)了名字結(jié)尾為Model的接口,如:按鈕就實(shí)現(xiàn)了ButtonModel接口;可以通過查看ButtonModel接口中的方法來獲知按鈕模型維護(hù)的

3、是哪種類型的數(shù)據(jù);Java模型-視圖-控制器設(shè)計(jì)模式Swing庫中包含了一個(gè)名為DefaultButtonModel的類,該類實(shí)現(xiàn)了ButtonModel接口,是JButton的模型類;該類同時(shí)也可作為單選按鈕、復(fù)選框等的模型類;視圖和感觀相關(guān)聯(lián),不同感觀對應(yīng)的視圖有所不同;當(dāng)使用Metal觀感時(shí),JButton類用BasicButtonUI類作為其視圖,用ButtonUIListener類作為控制器;JButton是一個(gè)繼承了JComponent的包裝器類,包含了一個(gè)DefaultButtonModel對象,一些視圖數(shù)據(jù)以及一個(gè)負(fù)責(zé)按鈕視

4、圖的BasicButtonUI對象(Metal感觀);JButtonbutton=newJButton(“Blue”);ButtonModelmodel=button.getModel();ButtonUIui=button.getUI();Java布局管理器容器內(nèi)的所有組件的排放由一個(gè)布局管理器(layoutmanager)進(jìn)行管理。java.awt.Containercontainer.setLayout(LayoutObject);Java布局管理器常用布局管理器流布局管理器(FlowLayout)邊界布局管理器(BorderLayo

5、ut)網(wǎng)格布局管理器(GridLayout)Java布局管理器流布局管理器(FlowLayout)其特點(diǎn)是在一行上水平排列組件,直到?jīng)]有足夠的空間為止,再開始新的一行;面板(JPanel)的默認(rèn)布局管理器;當(dāng)用戶縮放容器時(shí),布局管理器自動(dòng)地調(diào)整組件的位置使其填充可用的空間;但容器中組件的大小不會(huì)變;默認(rèn)情況下,組件是在一行上居中顯示。程序員可以設(shè)置容器中的組件按左對齊或者右對齊的方式排列;panel.setLayout(newFlowLayout(FlowLayout.LEFT));Java布局管理器流布局管理器(FlowLayout)ja

6、va.awt.Layout;FlowLayout();FlowLayout(intalign);FlowLayout(intalign,inthgap,intvgap);常用的行對齊方式FlowLayout.CENTER;FlowLayout.LEFT;FlowLayout.RIGHT;Java布局管理器邊界布局管理器(BorderLayout)將整個(gè)容器分為中部、北部、南部、東部或者西部五個(gè)區(qū)域;程序員可以選擇將組件放在哪個(gè)區(qū)域;默認(rèn)放在中部;JFrame的內(nèi)容窗格的默認(rèn)布局管理器;frame.add(button,BorderLayou

7、t.SOUTH);Java布局管理器邊界布局管理器(BorderLayout)邊界布局管理器在安放組件時(shí),會(huì)先放入邊緣組件,剩余的可用空間由中間組件占用,如果有某個(gè)邊緣組件空缺,其它組件會(huì)填充該邊緣位置;容器縮放時(shí),邊界布局會(huì)擴(kuò)大所有組件的尺寸以便填充可用空間,但邊緣組件的厚度不會(huì)改變,長度會(huì)有所改變,而中間組件的大小會(huì)發(fā)生變化;Java布局管理器java.awt.BorderLayout類BorderLayout();BorderLayout(inthgap,intvgap);Java布局管理器將一個(gè)組件放在邊界布局管理器的某個(gè)部分時(shí),其

8、會(huì)填充整個(gè)部分的空間,如果此時(shí)再放入另一個(gè)組入到相同的部分,則后放入的組件會(huì)覆蓋前一個(gè)組件;publicclassBorderLayoutTest{publicstaticvoi

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時(shí)聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請聯(lián)系客服處理。