Java就业培训教程第九章 GUI(下).docx
《Java就业培训教程第九章 GUI(下).docx》由会员分享,可在线阅读,更多相关《Java就业培训教程第九章 GUI(下).docx(40页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第9章 GUUI(下)9.1 常用用AWTT组件在上一章章开始的的第一个个程序中中,我们们就用到到了按钮钮(Buuttoon),这这是最简简单的组组件之一一了,在在AWTT里还有有很多用用于GUUI设计计的组件件,我们们现在就就来了解解更多的的GUII组件。如图9.1所示描述述了AWWT中的的组件及及类层次次关系图。图9.119.1.1 Commponnentt类Javaa的图形形用户界界面的最最基本组组成部分分是组件件,组件件是一个个可以以以图形化化的方式式显示在在屏幕上上并能与与用户进进行交互互的对象象,例如如一个按按钮,一一个标签签等。抽抽象类CCompponeent是是所有JJavaa
2、 GUUI组件件的共同同父类。Commponnentt类规定定了所有有GUII组件的的基本特特性,该该类中定定义的方方法实现现了作为为一个GGUI组组件所应应具备的的基本功功能。JJavaa程序要要显示的的GUII组件必必须是抽抽象类CCompponeent或或MennuCoompoonennt的子子类。9.1.2 CannvassCanvvas代代表屏幕幕上的一一块空白白的矩形形区域,程程序能够够在这个个部件表表面绘图图,也能能够捕获获用户的的操作,产产生相应应的事件件,Caanvaas可以以说是具具有最基基本的和和最简单单的GUUI功能能的部件件。当我我们要设设计一种种自己定定制的具具有G
3、UUI功能能的部件件类,我我们的这这个类就就可以继继承Caanvaas,这这样,我我们的部部件类就就已经完完成了GGUI的的基本功功能,我我们只需需要在这这个基础础上增加加子类部件件所专有有的外观观和功能能的相关关代码就就行了,我我们要想想绘制子子类部件件的外观观,我们们必须覆覆盖Caanvaas的ppainnt方法法。我们现在在设计一一个计时时器部件件,鼠标标在部件件上按下下时,计计时器开开始计时时,并在在部件上上显示计计时时间间,鼠标标释放时时,计时时器停止止计时。下面是是这个计计时器的的程序代代码,其其中涉及及到的技技巧和知知识点,都都在前面有过过讲解,这里就不不作详细细解释了了。程序清
4、单单:TeestSStoppWattch.javvaimpoort javva.aawt.*;impoort javva.aawt.eveent.*;impoort javva.uutill.*;impoort javva.ttextt.SiimplleDaateFFormmat;classs SStoppWattchexttendds CCanvvas impplemmentts RRunnnabllepriivatte llongg sttarttTimme = 0;priivatte llongg enndTiime = 00;priivatte bboolleann bSStarrt
5、= faalsee;pubblicc SttopWWatcch()ennablleEvventts(AAWTEEvennt.MMOUSSE_EEVENNT_MMASKK);seetSiize(80,30);prootecctedd vooid proocesssMoouseeEveent(MouuseEEvennt ee)iff(e.gettID() = MMousseEvventt.MOOUSEE_PRRESSSED)bbStaart = ttruee;sstarrtTiime = eendTTimee = Syysteem.ccurrrenttTimmeMiilliis();rrepaai
6、ntt();nnew Thrreadd(thhis).sttartt();ellse if(e.ggetIID() = MoouseeEveent.MOUUSE_RELLEASSED)bbStaart = ffalsse;rrepaaintt();suuperr.prroceessMMousseEvventt(e);pubblicc vooid paiint(Graaphiics g)SiimplleDaateFFormmat sdff= nnew SimmpleeDatteFoormaat(HH:mm:ss); Daate elaapseedTiime =nuull;trryellapsse
7、dTTimee= ssdf.parrse(000:000:000);ccatcch(EExceeptiion e)ellapssedTTimee.seetTiime(enddTimme - sttarttTimme + elaapseedTiime.gettTimme();Sttrinng ddispplayy = sddf.fformmat(elaapseedTiime);g.draawReect(0,00,788,288);g.filll3DDRecct(22,2,75,25,truue);g.settCollor(Collor.REDD);g.draawSttrinng(ddisppla
8、yy,100,200);pubblicc vooid runn()whhilee(bSStarrt)ttryTThreead.sleeep(5000);cattch(Exccepttionn e)e.priintSStacckTrracee();eendTTimee = Sysstemm.cuurreentTTimeeMillliss();rrepaaintt();publlic claass TesstSttopWWatcchpubblicc sttatiic vvoidd maain(Strringg arrgs)Frramee f =neew FFramme(StoopWaatchh);
9、f.addd(neew SStoppWattch();f.settSizze(2200,2000);f.settVissiblle(ttruee);ff.adddWiindoowLiisteenerr(neew WWinddowAAdappterr()publlic voiid wwinddowCClossingg(WiindoowEvventt e)Sysstemm.exxit(0););编译并运运行这个个程序,你你一定要要用鼠标标按住计计时器部部件几秒秒钟,你你就能看看到我们们期望的的效果了了,如图图9.2所示。图9.22如果你想想让这个个计时器器部件尽尽可能满满足更多多的应用用需求,你你
10、还需要要增加一一些功能能,如允允许用户户设置文文本的颜颜色,文文本的大大小随部部件大小小的改变变而改变变等。9.1.3 CChecckbox如果你熟熟悉Wiindoows的的应用,对对单选按按钮和多多选按钮钮一定不不会陌生,这这两种按按钮都有有选中和和不选两两种状态态,如图图9.33所示。对对多选按按钮来说说,如果有有多个这这样的按按钮,每每个按钮钮之间没没有制约约关系,可可以同时时选中其其中的多多个。而而单选按钮钮则要求求有一组组按钮,这这一组按按钮中同同时只能能有一个个为选中中状态。Javaa里提供供的这个个Cheeckbbox类类来建立立单选按按钮和多多选按钮钮,Cheeckbbox的的
11、使用很很容易,如果要创建多选按钮,我们只要使用public Checkbox(Stringlabel, booleanstate)这个构造函数来创建Checkbox对象就行了,创建多选按钮要用到两个参数,前一个是选框旁边的说明文字,后一个参数决定选框是否默认被选定。因为创建单选按单钮需要一组按钮,所以在创建单选按钮时,我们还需要指定这个按钮所属于的组,使用publlic Cheeckbbox(Strringglaabell,boooleeanstaate,CheeckbboxGGrouupggrouup)这个构造造函数创创建的就就是单选选按钮。其中,CheckboxGroup类对象指定了这个单
12、选按钮所属于的组。对一般的的程序来来说,需需要处理理单选按按钮和多多选按钮钮的IttemEEvennt事件件,从而而获得用用户选择择的结果果。处理理IteemEvventt事件的的监听器器接口为为IteemLiisteenerr,其中中只有一一个ittemSStatteChhangged方法,显显然,IItemmEveent是是一种语语义事件件。下面是一一段创建建多选按钮和单单选按钮钮以及相相关事件件处理的的程序代代码:程序清单单:TeestCChecckboox.jjavaaimpoort javva.aawt.*;impoort javva.aawt.eveent.*;publlic cl
13、aass TesstChheckkboxx Cheeckbbox cb11=neew CChecckboox(你喜欢欢我吗?,ttruee);CheeckbboxGGrouup ccbg=neww ChheckkboxxGrooup();Cheeckbbox cb22=neew CChecckboox(喜欢,cbbg,ttruee);Cheeckbbox cb33=neew CChecckboox(不喜欢欢,ccbg,fallse);pubblicc vooid iniit()Frramee f=neww Frramee(TTesttCheeckBBox);/创建建FloowLaayouut布
14、局局管理器器,关于于布局管管理器,本本章后面面有专门门的讲解解,看不不明白/的读读者暂时时可以不不去下面面两句代代码的作作用。FllowLLayoout fl=neww FllowLLayoout();f.settLayyoutt(fll);f.aadd(cb11);f.addd(cbb2);f.addd(cbb3);cbb1.aaddIItemmLisstenner(neww CbbIteemLiisteenerr();cbb2.aaddIItemmLisstenner(neww CbbIteemLiisteenerr();cbb3.aaddIItemmLisstenner(neww Cbb
15、IteemLiisteenerr();f.settBouundss(0,0,3300,1000);f.settVissiblle(ttruee);ff.adddWiindoowLiisteenerr(neew WWinddowAAdappterr()publlic voiid wwinddowCClossingg(WiindoowEvventt e)Sysstemm.exxit(0););claass CbIItemmLisstenner impplemmentts IItemmLisstennerpuubliic vvoidd ittemSStatteChhangged(IteemEvven
16、tt e)CChecckboox ccb = (CChecckboox)ee.geetIttemSSeleectaablee();iif(ccb.ggetLLabeel().eqqualls(你喜欢欢我吗?)if(cb.gettStaate() = ttruee)Sysstemm.ouut.pprinntlnn(我我很高兴兴);elsseSysstemm.ouut.pprinntlnn(我我很伤心心);/*ellse if(cb.gettLabbel().eequaals(喜欢欢)if(e.ggetSStatteChhangge() = IttemEEvennt.SSELEECTEED)Sys
17、stemm.ouut.pprinntlnn(我我也喜欢欢你);elsseSysstemm.ouut.pprinntlnn(我我也不喜喜欢你);*/eelseeCheeckbbox cbxx =ccbg.gettSellecttedCChecckboox();if(cbxx != nuull)Sysstemm.ouut.pprinntlnn(cbbx.ggetLLabeel();pubblicc sttatiic vvoidd maain(Strringg arggs)neew TTesttCheeckbbox().iinitt();程序运行行效果如如图9.3所示:图9.33如果我们们用注释释的
18、程序序代码来来处理单单选按钮钮,需要要为每一一个单选选按钮都都编写一一段这样样的代码码,如果果按钮的的个数较较多,程程序就比比较臃肿肿,但从从这段注注释代码码中,读读者可以以了解到对同同一问题题的多种种处理方方式,也也可以在在正好有有这方面面的需要要时参考考。如果我们们不想直直接处理理这些单单选按钮钮的事件件,而是在在别的部部件的事事件处理理代码中中收集这这些单选选按钮的的选择结结果。譬如,我我们经常常在最后后单击ook按钮钮的事件件中再去去收集设设置对话话框上的的所有部部件的设设置结果果,我们们使用类似似程序中中elsse部分分的代码码,就是是一个不不错的方方法。9.1.4 Chooicee
19、Choiice类类用来制制作用于于单选的的下拉列列表,用用起来也也比较容容易,来来看这段段程序:程序清单单:TeestCChoiice.javvaimpoort javva.aawt.*;impoort javva.aawt.eveent.*;publlic claass TesstChhoicce Chooicee chh=neew CChoiice(); /创创建Chhoicce对象象TesstChhoicce()chh.addd(chooicee1); /用aadd方方法向列列表里加加入选项项chh.addd(chooicee2); /用aadd方方法向列列表里加加入选项项chh.add
20、d(chooicee3); /用aadd方方法向列列表里加加入选项项FllowLLayoout fl=neww FllowLLayoout();Frramee f=neww Frramee(TTesttChooicee);f.settLayyoutt(fll);f.addd(chh); /把把列表加加入到窗窗口f.settBouundss(0,0,2200,1000);f.settVissiblle(ttruee);f.adddWinndowwLisstenner(neww WiindoowAddaptter()publlic voiid wwinddowCClossingg(Wiindoow
21、Evventt e)Sysstemm.exxit(0););pubblicc sttatiic vvoidd maain(Strringg arggs)neew TTesttChooicee();如图9.4所示示是程序序执行后后展开列列表的情情况:图9.449.1.5 菜单一个完整整的菜单单系统由由菜单条条、菜单单和菜单单项组成成。他们与与菜单的的对应关关系如图图9.55所示:图9.55在图中,FFilee、Eddit、Toools、Hellp各项项叫做菜菜单,这这些顶层层菜单共同同组合成成菜单条条,在FFilee项的下下拉菜单单中Neew、OOpenn等各项项叫做菜菜单项。Javaa中与菜菜
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java就业培训教程第九章 GUI下 Java 就业 培训 教程 第九 GUI
限制150内