資源描述:
《實(shí)驗(yàn)3 圖形用戶界面編程(answer)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、《JAVA高級(jí)語言程序設(shè)計(jì)》實(shí)驗(yàn)3(張維)實(shí)驗(yàn)3圖形用戶界面設(shè)計(jì)3.1實(shí)驗(yàn)?zāi)康?1)掌握?qǐng)D形用戶界面的布局設(shè)置;(2)掌握事件驅(qū)動(dòng)編程的特點(diǎn),如何區(qū)分事件源。(3)掌握文本框、文本域、標(biāo)簽、按鈕等部件的操作方法。(4)掌握鼠標(biāo)與鍵盤事件編程(低級(jí)事件)(5)了解菜單等其他圖形部件的使用3.2知識(shí)要點(diǎn)3.2.1awt包與swing包簡介(1)java.awt包與swing包可用于編寫JavaApplication和Applet的圖形界面。(2)具體介紹參見教材,現(xiàn)在常用的是swing包。3.2.2容器、布局和部件(1)容器Container是
2、Component的子類,具有構(gòu)件的所有性質(zhì),并且能放置其他容器和構(gòu)件。?一個(gè)容器能容納若干構(gòu)件;?調(diào)用容器對(duì)象的add方法將構(gòu)件加入到容器中;?窗體(Window)容器在不同的操作平臺(tái)上顯示不同的外觀。?面板(Panel)容器是沒有標(biāo)題和邊框的透明容器,不能單獨(dú)存在,必須加入窗體等其他容器中使用。(2)各類GUI部件的特點(diǎn)?按鈕(Button):單擊產(chǎn)生ActionEvent事件?復(fù)選框(Checkbox):選擇時(shí)產(chǎn)生ItemEvent事件?復(fù)選框組(CheckboxGroup):只能選一,單選;?下拉列表(Choice):只能選1項(xiàng);?
3、列表(List):可以選多項(xiàng);?文本框(TextField):只能顯示一行,按回車觸發(fā)ActionEvent;?文本域(TextArea):顯示多行文本。?畫布(Canvas):只能繪圖,處理鼠標(biāo)和鍵盤事件。?窗體(Frame):頂級(jí)容器,關(guān)閉時(shí)觸發(fā)WindowEvent;第1頁《JAVA高級(jí)語言程序設(shè)計(jì)》實(shí)驗(yàn)3(張維)?面板(Panel):可進(jìn)行嵌套布局的容器,面板作為一個(gè)部件加入到窗體容器中,面板作為容器又可以放其他面板和部件。?對(duì)話框(Dialog):包括模式和非模式兩類,依賴其他窗體。?文件對(duì)話框(FileDialog):用于打開和
4、關(guān)閉文件。?菜單(Menu)、菜單條(MenuBar)和菜單項(xiàng)(MenuItem):只能對(duì)Frame創(chuàng)建菜單,菜單條中添加菜單,菜單中可以添加菜單項(xiàng)或子菜單。(3)布局Java通過布局管理器對(duì)所有構(gòu)件進(jìn)行管理,以支持跨平臺(tái)的動(dòng)態(tài)布局效果。常見布局管理器有3種,見表3-1所示。表3-1常見布局管理器及特點(diǎn)布局特點(diǎn)組件按照加入的先后順序從左到右排放,放不下再換至下一FlowLayout布局行,部件大小不變,是Applet和Panel的默認(rèn)布局。將容器分為東(East)、南(South)、西(West)、北(North)、BorderLayout
5、布局中(Center)五個(gè)區(qū)域,加入組件用命令:add(方位名字符串,組件)。是Frame、Dialog的默認(rèn)布局。將容器空間分為若干行乘若干列的網(wǎng)格區(qū)域,組件按從左向GridLayout布局右,從上到下的次序被加到各單元格中,組件的大小將調(diào)整為與單元格大小相同。3.2.3事件處理(1)事件處理機(jī)制?涉及對(duì)象有事件源、事件、事件處理者(監(jiān)聽者)。事件源是發(fā)生事件的對(duì)象;事件對(duì)象是提供事件相關(guān)信息的對(duì)象;事件處理者則是消化事件,完成特定處理的對(duì)象。?Java采用委托(授權(quán))事件處理機(jī)制;事件源對(duì)其可能發(fā)生的事件分別授權(quán)不同的事件處理者處理;通
6、過如下命令注冊(cè)監(jiān)聽者:addXXXListener(XXXListenera);其中,XXX與相應(yīng)事件類型相關(guān),例如:按鈕點(diǎn)擊動(dòng)作事件對(duì)應(yīng)標(biāo)記為“Action”.要注銷監(jiān)聽者使用removeXXXListener(XXXListenera);?事件處理者必須實(shí)現(xiàn)某類事件相對(duì)應(yīng)的接口,只有符合接口規(guī)范的對(duì)象才能作為事件處理者,通過編寫相應(yīng)方法實(shí)現(xiàn)事件的處理。例如,ActionListener接口中定義了如下方法用來處理事件。publicvoidactionPerformed(ActionEvente);?Java為每類事件提供了一個(gè)相應(yīng)的接口
7、。(2)事件與事件處理第2頁《JAVA高級(jí)語言程序設(shè)計(jì)》實(shí)驗(yàn)3(張維)?java.util.EventObject是所有事件類的父類;java.awt.AWTEvent是所有AWT事件類的父類,其包括低級(jí)事件和基于語義的高級(jí)事件。?XXXEvent對(duì)應(yīng)的事件處理接口通常為XXXListener,但鼠標(biāo)事件(MouseEvent)對(duì)應(yīng)的事件處理接口有兩個(gè),一個(gè)是MouseListener,另一個(gè)是MouseMotionListener,它們分別用來處理鼠標(biāo)的移動(dòng)(含拖動(dòng))與鼠標(biāo)的點(diǎn)擊動(dòng)作。各類接口的事件處理方法見表3-2。表3-2AWT事件接
8、口及處理方法描述信息接口名稱方法(事件)點(diǎn)擊按鈕、點(diǎn)擊菜單ActionListeneractionPerformed(ActionEvent)項(xiàng)、文本框按回車等動(dòng)作選擇了可選項(xiàng)的