




已閱讀5頁(yè),還剩14頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
外文原文THEJAVAABSTRACTWINDOWINGTOOLKITFORTHEPASTFIVEDAYSYOUVECONCENTRATEDONCREATINGAPPLETSTHATDOVERYSIMPLETHINGSDISPLAYTEXT,PLAYANANIMATIONORASOUND,ORENABLEVERYBASICINTERACTIONSWITHTHEUSERONCEYOUGETPASTTHATPOINT,HOWEVER,YOUMAYWANTTOSTARTCREATINGMORECOMPLEXAPPLETSTHATBEHAVELIKEREALAPPLICATIONS,EMBEDDEDINAWEBPAGEAPPLETSTHATSTARTTOLOOKLIKEREALGUIAPPLICATIONSWITHBUTTONS,MENUS,TEXTFIELDSANDOTHERELEMENTSOFAREALAPPLICATIONITSTHISSORTOFREALWORKINJAVAAPPLETSANDAPPLICATIONSTHATJAVASABSTRACTWINDOWINGTOOLKIT,ORAWT,WASDESIGNEDFORYOUVEACTUALLYBEENUSINGTHEAWTALLALONG,ASYOUMIGHTHAVEGUESSEDFROMTHECLASSESYOUVEBEENIMPORTINGTHEAPPLETCLASSANDMOSTOFTHECLASSESYOUVEBEENUSINGTHISWEEKAREALLINTEGRALPARTSOFTHEAWTINFACT,THEHOTJAVABROWSERISALSOWRITTENINJAVAANDUSESTHEAWTASWELLTHEAWTPROVIDESTHEFOLLOWING口AFULLSETOFUIWIDGETSANDOTHERCOMPONENTS,INCLUDINGWINDOWS,MENUS,BUTTONS,CHECKBOXES,TEXTFIELDS,SCROLLBARS,ANDSCROLLINGLISTS口SUPPORTFORUI“CONTAINERS,”WHICHCANCONTAINOTHEREMBEDDEDCONTAINERSORUIWIDGETS口ANEVENTSYSTEMFORMANAGINGSYSTEMANDUSEREVENTSBETWEENANDAMONGPARTSOFTHEAWT口MECHANISMSFORLAYINGOUTCOMPONENTSINAWAYTHATENABLESPLATFORMINDEPENDENTUIDESIGNTODAY,YOULLLEARNABOUTHOWTOUSEALLTHESETHINGSINYOURJAVAAPPLETSTOMORROW,YOULLLEARNABOUTCREATINGWINDOWS,MENUS,ANDDIALOGS,WHICHENABLEYOUTOPOPUPSEPARATEWINDOWSFROMTHEBROWSERWINDOWINADDITION,YOUCANUSETHEAWTINSTANDALONEAPPLICATIONS,SOEVERYTHINGYOUVELEARNEDSOFARTHISWEEKCANSTILLBEUSEDIFYOUFINDTHEFRAMEWORKOFTHEWEBBROWSERTOOLIMITING,YOUCANTAKEYOURAWTBACKGROUNDANDSTARTWRITINGFULLFLEDGEDJAVAAPPLICATIONSTODAY,HOWEVER,YOULLCONTINUEFOCUSINGONAPPLETSNOTETHISISBYFARTHEMOSTCOMPLEXLESSONSOFARTHERESALOTTOCOVERANDALOTOFCODETOGOTHROUGHTODAY,SOIFITSTARTSBECOMINGOVERWHELMING,YOUMIGHTWANTTOTAKETWODAYSORMOREFORTHISONEANAWTOVERVIEWTHEBASICIDEABEHINDTHEAWTISTHATAJAVAWINDOWISASETOFNESTEDCOMPONENTS,STARTINGFROMTHEOUTERMOSTWINDOWALLTHEWAYDOWNTOTHESMALLESTUICOMPONENTCOMPONENTSCANINCLUDETHINGSYOUCANACTUALLYSEEONTHESCREEN,SUCHASWINDOWS,MENUBARS,BUTTONS,ANDTEXTFIELDS,ANDTHEYCANALSOINCLUDECONTAINERS,WHICHINTURNCANCONTAINOTHERCOMPONENTSFIGURE131SHOWSHOWASAMPLEPAGEINAJAVABROWSERMIGHTINCLUDESEVERALDIFFERENTCOMPONENTS,ALLOFWHICHAREMANAGEDTHROUGHTHEAWTTHISNESTINGOFCOMPONENTSWITHINCONTAINERSWITHINOTHERCOMPONENTSCREATESAHIERARCHYOFCOMPONENTS,FROMTHESMALLESTCHECKBOXINSIDEANAPPLETTOTHEOVERALLWINDOWONTHESCREENTHEHIERARCHYOFCOMPONENTSDETERMINESTHEARRANGEMENTOFITEMSONTHESCREENANDINSIDEOTHERITEMS,THEORDERINWHICHTHEYAREPAINTED,ANDHOWEVENTSAREPASSEDFROMONECOMPONENTTOANOTHERTHESEARETHEMAJORCOMPONENTSYOUCANWORKWITHINTHEAWT口CONTAINERSCONTAINERSAREGENERICAWTCOMPONENTSTHATCANCONTAINOTHERCOMPONENTS,INCLUDINGOTHERCONTAINERSTHEMOSTCOMMONFORMOFCONTAINERISTHEPANEL,WHICHREPRESENTSACONTAINERTHATCANBEDISPLAYEDONSCREENAPPLETSAREAFORMOFPANELINFACT,THEAPPLETCLASSISASUBCLASSOFTHEPANELCLASS口CANVASESACANVASISASIMPLEDRAWINGSURFACEALTHOUGHYOUCANDRAWONPANELSASYOUVEBEENDOINGALLALONG,CANVASESAREGOODFORPAINTINGIMAGESOROTHERGRAPHICSOPERATIONS口UICOMPONENTSTHESECANINCLUDEBUTTONS,LISTS,SIMPLEPOPUPMENUS,CHECKBOXES,TESTFIELDS,ANDOTHERTYPICALELEMENTSOFAUSERINTERFACE口WINDOWCONSTRUCTIONCOMPONENTSTHESEINCLUDEWINDOWS,FRAMES,MENUBARS,ANDDIALOGSTHESEARELISTEDSEPARATELYFROMTHEOTHERUICOMPONENTSBECAUSEYOULLUSETHESELESSOFTENPARTICULARLYINAPPLETSINAPPLETS,THEBROWSERPROVIDESTHEMAINWINDOWANDMENUBAR,SOYOUDONTHAVETOUSETHESEYOURAPPLETMAYCREATEANEWWINDOW,HOWEVER,ORYOUMAYWANTTOWRITEYOUROWNJAVAAPPLICATIONTHATUSESTHESECOMPONENTSTHECLASSESINSIDETHEJAVAAWTPACKAGEAREWRITTENANDORGANIZEDTOMIRRORTHEABSTRACTSTRUCTUREOFCONTAINERS,COMPONENTS,ANDINDIVIDUALUICOMPONENTSFIGURE132SHOWSSOMEOFTHEWINDOWMENUBARAPPLEPANELCANVASTMOREPANELSTEXTFIELDLABELCLASSHIERARCHYTHATMAKESUPTHEMAINCLASSESINTHEAWTTHEROOTOFMOSTOFTHEAWTCOMPONENTSISTHECLASSCOMPONENT,WHICHPROVIDESBASICDISPLAYANDEVENTHANDLINGFEATURESTHECLASSESCONTAINER,CANVAS,TEXTCOMPONENT,ANDMANYOFTHEOTHERUICOMPONENTSINHERITFROMCOMPONENTINHERITINGFROMTHECONTAINERCLASSAREOBJECTSTHATCANCONTAINOTHERAWTCOMPONENTSTHEPANELANDWINDOWCLASSES,INPARTICULARNOTETHATTHEJAVAAPPLETAPPLETCLASS,EVENTHOUGHITLIVESINITSOWNPACKAGE,INHERITSFROMPANEL,SOYOURAPPLETSAREANINTEGRALPARTOFTHEHIERARCHYOFCOMPONENTSINTHEAWTSYSTEMFIGURE132APARTIALAWTCLASSHIERARCHYAGRAPHICALUSERINTERFACEBASEDAPPLICATIONTHATYOUWRITEBYUSINGTHEAWTCANBEASCOMPLEXASYOULIKE,WITHDOZENSOFNESTEDCONTAINERSANDCOMPONENTSINSIDEEACHOTHERAWTWASDESIGNEDSOTHATEACHCOMPONENTCANPLAYITSPARTINTHEOVERALLAWTSYSTEMWITHOUTNEEDINGTODUPLICATEORKEEPTRACKOFTHEBEHAVIOROFOTHERPARTSINTHESYSTEMTHEBASICUSERINTERFACECOMPONENTSTHESIMPLESTFORMOFAWTCOMPONENTISTHEBASICUICOMPONENTYOUCANCREATEANDADDTHESETOYOURAPPLETWITHOUTNEEDINGTOKNOWANYTHINGABOUTCREATINGCONTAINERSORPANELSYOURAPPLET,EVENBEFOREYOUSTARTPAINTINGANDDRAWINGANDHANDLINGEVENTS,ISALREADYANAWTCONTAINERBECAUSEANAPPLETISACONTAINER,YOUCANPUTOTHERAWTCOMPONENTSSUCHASUICOMPONENTSOROTHERCONTAINERSINTOITINTHISSECTION,YOULLLEARNABOUTTHEBASICUICOMPONENTSLABELS,BUTTONS,CHECKBOXES,CHOICEMENUS,ANDTEXTFIELDSINEACHCASE,THEPROCEDUREFORCREATINGTHECOMPONENTISTHESAMEYOUFIRSTCREATETHECOMPONENT,ANDTHENADDITTOTHEPANELTHATHOLDSIT,ATWHICHPOINTITISDISPLAYEDONTHESCREENTOADDACOMPONENTTOAPANELSUCHASYOURAPPLET,FOREXAMPLE,USETHEADDMETHODPUBLICVOIDINITBUTTONBNEWBUTTON“OK”ADDBCOMPONENTCANVASCONTAINERTEXTCOMPONENTBUTTONPANELTEXTFIELDWINDOWAPPLETDIALOGFRAMENOTETHATWHERETHECOMPONENTAPPEARSINTHEPANELDEPENDSONTHELAYOUTTHATPANELISDEFINEDTOHAVETHEDEFAULTLAYOUTFORPANELSSUCHASAPPLETSISFLOWLAYOUT,WITHACENTEREDALIGNMENT,WHICHMEANSTHATCOMPONENTSAREADDEDFROMLEFTTORIGHTINROWS,ANDTHENROWBYROWASTHEYFIT,WITHEACHROWCENTEREDTHISEXPLAINSWHYSOMEOFTHEEXAMPLESINTHISSECTIONLOOKALITTLEFUNNYYOULLLEARNMOREABOUTPANELSANDLAYOUTSINTHENEXTSECTIONNOTEALSOTHATEACHOFTHESECOMPONENTSHASANACTIONASSOCIATEDWITHITTHATIS,SOMETHINGTHATCOMPONENTDOESWHENITSACTIVATEDACTIONSGENERALLYTRIGGEREVENTSOROTHERACTIVITIESINYOURAPPLETOFTENCALLEDCALLBACKSINOTHERWINDOWTOOLKITSINTHISSECTION,YOULLFOCUSONCREATINGTHECOMPONENTSTHEMSELVESYOULLLEARNABOUTADDINGACTIONSTOTHEMLATERINTODAYSLESSONONTOTHECOMPONENTSLABELSTHESIMPLESTFORMOFUICOMPONENTISTHELABELLABELSARE,EFFECTIVELY,TEXTSTRINGSTHATYOUCANUSETOLABELOTHERUICOMPONENTSTHEADVANTAGESTHATALABELHASOVERANORDINARYTEXTSTRINGISTHATITFOLLOWSTHELAYOUTOFTHEGIVENPANEL,ANDYOUDONTHAVETOWORRYABOUTREPAINTINGITEVERYTIMETHEPANELISREDRAWNLABELSALSOCANBEEASILYALIGNEDWITHINAPANEL,ENABLINGYOUTOATTACHLABELSTOOTHERUICOMPONENTSWITHOUTKNOWINGEXACTPIXELPOSITIONSTOCREATEALABEL,USEONEOFTHEFOLLOWINGCONSTRUCTORS口LABELCREATESANEMPTYLABEL,WITHITSTEXTALIGNEDLEFT口LABELSTRINGCREATESALABELWITHTHEGIVENTEXTSTRING,ALSOALIGNEDLEFT口LABELSTRING,INTCREATESALABELWITHTHEGIVENTEXTSTRINGANDTHEGIVENALIGNMENTTHEAVAILABLEALIGNMENTSARESTOREDINCLASSVARIABLESINLABEL,MAKINGTHEMEASIERTOREMEMBERLABELRIGHT,LABELLEFT,ANDLABELCENTERTHELABELSFONTISDETERMINEDBYTHEOVERALLFONTFORTHECOMPONENTASSETBYTHESETFONTMETHODHERESSOMESIMPLECODETOCREATEAFEWLABELSFIGURE133SHOWSHOWTHISLOOKSONSCREENADDNEWLABEL“ALIGNEDLEFT“ADDNEWLABEL“ALIGNEDCENTER”,LABELCENTERADDNEWLABEL“ALIGNEDRIGHT”,LABELRIGHTONCEYOUHAVEALABELOBJECT,YOUCANUSEMETHODSDEFINEDINTHELABELCLASSTOGETANDSETTHEVALUESOFTHETEXTASSHOWNINTABLE131BUTTONSTHESECONDUSERINTERFACECOMPONENTTOEXPLOREISTHEBUTTONBUTTONSARESIMPLEUICOMPONENTSTHATTRIGGERSOMEACTIONINYOURINTERFACEWHENTHEYAREPRESSEDFOREXAMPLE,ACALCULATORAPPLETMIGHTHAVEBUTTONSFOREACHNUMBERANDOPERATOR,ORADIALOGBOXMIGHTHAVEBUTTONSFOR“OK”AND“CANCEL”TOCREATEABUTTON,USEONEOFTHEFOLLOWINGCONSTRUCTORS口BUTTONCREATESANEMPTYBUTTONWITHNOLABEL口BUTTONSTRINGCREATESABUTTONWITHTHEGIVENSTRINGOBJECTASALABELONCEYOUHAVEABUTTONOBJECT,YOUCANGETTHEVALUEOFTHEBUTTONSLABELBYUSINGTHEGETLABELMETHODANDSETTHELABELUSINGTHESETLABELSTRINGMETHODSFIGURE134SHOWSSOMESIMPLEBUTTONS,CREATEDUSINGTHEFOLLOWINGCODEADDNEWBUTTON“REWIND”ADDNEWBUTTON“PLAY”ADDNEWBUTTON“FASTFORWARD”ADDNEWBUTTON“STOP”CHECKBOXESCHECKBOXESCANBESELECTEDORDESELECTEDTOPROVIDEOPTIONSCHECKBOXESAREUSERINTERFACECOMPONENTSTHATHAVETWOSTATESONANDOFFORCHECKEDANDUNCHECKED,SELECTEDANDUNSELECTED,TRUEANDFALSE,ANDSOONUNLIKEBUTTONS,CHECKBOXESUSUALLYDONTTRIGGERDIRECTACTIONSINAUIBUT,INSTEAD,AREUSEDTOINDICATEOPTIONALFEATURESOFSOMEOTHERACTIONCHECKBOXESCANBEUSEDINTWOWAYS口NONEXCLUSIVE,MEANINGTHATGIVENASERIESOFCHECKBOXES,ANYOFTHEMCANBESELECTED口EXCLUSIVE,MEANINGTHATWITHINONESERIES,ONLYONECHECKBOXCANBESELECTEDATATIMETHELATTERKINDOFCHECKBOXESARECALLEDRADIOBUTTONSORCHECKBOXGROUPS,ANDAREDESCRIBEDINTHENEXTSECTIONNONEXCLUSIVECHECKBOXESCANBECREATEDBYUSINGTHECHECKBOXCLASSYOUCANCREATEACHECKBOXBYUSINGONEOFTHEFOLLOWINGCONSTRUCTORS口CHECKBOXCREATESANEMPTYCHECKBOX,UNSELECTED口CHECKBOXSTRINGCREATESACHECKBOXWITHTHEGIVENSTRINGASALABEL口CHECKBOXSTRING,NULL,BOOLEANCREATESACHECKBOXTHATISEITHERSELECTEDORUNSELECTEDBASEDONWHETHERTHEBOOLEANARGUMENTISTRUEORFALSE,RESPECTIVELYTHENULLISUSEDASAPLACEHOLDERFORAGROUPARGUMENTONLYRADIOBUTTONSHAVEGROUPS,ASYOULLLEARNINTHENEXTSECTIONTABLE132LISTSTHECHECKBOXMETHODSFIGURE135SHOWSAFEWSIMPLECHECKBOXESONLYUNDERWEARISSELECTED,GENERATEDUSINGTHEFOLLOWINGCODEADDNEWCHECKBOX“SHOES”ADDNEWCHECKBOX“SOCKS”ADDNEWCHECKBOX“PANTS”ADDNEWCHECKBOX“UNDERWEAR”,NULL,TRUEADDNEWCHECKBOX“SHIRT”RADIOBUTTONSRADIOBUTTONSAREAVARIATIONONTHECHECKBOXRADIOBUTTONSHAVETHESAMEAPPEARANCEASCHECKBOXES,BUTONLYONEINASERIESCANBESELECTEDATATIMETOCREATEASERIESOFRADIOBUTTONS,FIRSTCREATEANINSTANCEOFCHECKBOXGROUPCHECKBOXGROUPCBGNEWCHECKBOXGROUPTHENCREATEANDADDTHEINDIVIDUALCHECKBOXES,USINGTHEGROUPASTHESECONDARGUMENT,ANDWHETHERORNOTTHATCHECKBOXISSELECTEDONLYONEINTHESERIESCANBESELECTEDADDNEWCHECKBOX“YES”,CBG,TRUEADDNEWCHECKBOX“NO”,CBG,FALSEHERESASIMPLEEXAMPLETHERESULTSOFWHICHARESHOWNINFIGURE136CHECKBOXGROUPCBGNEWCHECKBOXGROUPADDNEWCHECKBOX“RED”,CBG,TRUEADDNEWCHECKBOX“BLUE”,CBG,FALSEADDNEWCHECKBOX“YELLOW”,CBG,FALSEADDNEWCHECKBOX“GREEN”,CBG,FALSEADDNEWCHECKBOX“ORANGE”,CBG,FALSEADDNEWCHECKBOX“PURPLE”,CBG,FALSEALLTHECHECKBOXMETHODSDEFINEDINTHEPREVIOUSSECTIONCANBEUSEDWITHTHECHECKBOXESINTHEGROUPINADDITION,YOUCANUSETHEGETCHECKBOXGROUPANDSETCHECKBOXGROUPMETHODSTOACCESSANDCHANGETHEGROUPOFANYGIVENCHECKBOXFINALLY,THEGETCURRENTANDSETCURRENTCHECKBOXMETHODS,DEFINEDINTHECHECKBOXGROUP,CANBEUSEDTOGETORSETTHECURRENTLYSELECTEDCHECKBOXCHOICEMENUSTHECHOICEMENUISAMORECOMPLEXUICOMPONENTTHANLABELS,BUTTONS,ORCHECKBOXESCHOICEMENUSAREPOPUPORPULLDOWNMENUSTHATENABLEYOUTOSELECTANITEMFROMTHATMENUTHEMENUTHENDISPLAYSTHATCHOICEONTHESCREENTOCREATEACHOICEMENU,CREATEANINSTANCEOFTHECHOICECLASS,ANDTHENUSETHEADDITEMMETHODTOADDINDIVIDUALITEMSTOITINTHEORDERINWHICHTHEYSHOULDAPPEARCHOICECNEWCHOICECADDITEM“APPLES”CADDITEM“ORANGES”CADDITEM“STRAWBERRIES”CADDITEM“BLUEBERRIES”CADDITEM“BANANAS”FINALLY,ADDTHEENTIRECHOICEMENUTOTHEPANELINTHEUSUALWAYADDCFIGURE137SHOWSASIMPLECHOICEMENUGENERATEDFROMCODEINTHEPREVIOUSEXAMPLETIPCHOICEMENUSENABLEONLYONESELECTIONPERMENUIFYOUWANTTOSELECTMULTIPLEITEMS,USEASCROLLINGLISTINSTEADONCEYOURCHOICEMENUISCREATED,REGARDLESSOFWHETHERITSADDEDTOAPANEL,YOUCANCONTINUETOADDITEMSTOTHATMENUBYUSINGTHEADDITEMMETHODTABLE133SHOWSSOMEOTHERMETHODSTHATMAYBEUSEFULINWORKINGWITHCHOICEMENUSGETITEMINTRETURNSTHESTRINGITEMATTHEGIVENPOSITIONITEMSINSIDEACHOICEBEGINAT0,SAMEASARRAYSCOUNTITEMSRETURNSTHENUMBEROFITEMSINTHEMENUGETSELECTEDINDEXRETURNSTHEINDEXPOSITIONOFTHEITEMTHATSSELECTEDGETSELECTEDITEMRETURNSTHECURRENTLYSELECTEDITEMASASTRINGSELECTINTSELECTSTHEITEMATTHEGIVENPOSITIONSELECTSTRINGSELECTSTHEITEMWITHTHATSTRINGTEXTFIELDSUNLIKETHEUICOMPONENTSUPTOTHISPOINT,WHICHENABLEYOUTOSELECTONLYAMONGSEVERALOPTIONSTOPERFORMANACTION,TEXTFIELDSALLOWYOUTOENTERANYVALUESTEXTFIELDSENABLEYOURREADERTOENTERTEXTTOCREATEATEXTFIELD,USEONEOFTHEFOLLOWINGCONSTRUCTORS口TEXTFIELDCREATESANEMPTYTEXTFIELD0CHARACTERSWIDE口TEXTFIELDINTCREATESANEMPTYTEXTFIELDWITHTHEGIVENWIDTHINCHARACTERS口TEXTFIELDSTRINGCREATESATEXTFIELD0CHARACTERSWIDE,INITIALIZEDWITHTHEGIVENSTRING口TEXTFIELDSTRING,INTCREATESATEXTFIELDWITHTHEGIVENWIDTHINCHARACTERSANDCONTAININGTHEGIVENSTRINGIFTHESTRINGISLONGERTHANTHEWIDTH,YOUCANSELECTANDDRAGPORTIONSOFTHETEXTWITHINTHEFIELDANDTHEBOXWILLSCROLLLEFTORRIGHTFOREXAMPLE,THEFOLLOWINGLINECREATESATEXTFIELD30CHARACTERSWIDEWITHTHESTRING“ENTERYOURNAME”ASITSINITIALCONTENTSTEXTFIELDTFNEWTEXTFIELD“ENTERYOURNAME”,30ADDTFTIPTEXTFIELDSINCLUDEONLYTHEEDITABLEFIELDITSELFYOUUSUALLYNEEDTOINCLUDEALABELWITHATEXTFIELDTOINDICATEWHATBELONGSINTHATTEXTFIELDNOTETEXTFIELDSAREDIFFERENTFROMTEXTAREASTEXTFIELDSARELIMITEDINSIZEANDAREBESTUSEDFORONELINEITEMS,WHEREASTEXTAREASHAVESCROLLBARSANDAREBETTERFORLARGERTEXTWINDOWSBOTHCANBEEDITEDANDENABLESELECTIONSWITHTHEMOUSEYOULLLEARNABOUTTEXTAREASLATERTODAYYOUCANALSOCREATEATEXTFIELDTHATOBSCURESTHECHARACTERSTYPEDINTOITFOREXAMPLE,FORPASSWORDFIELDSTODOTHIS,FIRSTCREATETHETEXTFIELDSITSELF,ANDTHENUSETHESETECHOCHARACTERMETHODTOSETTHECHARACTERTHATISECHOEDONTHESCREENHEREISANEXAMPLETEXTFIELDTFNEWTEXTFIELD30TFSETECHOCHARACTERFIGURE138SHOWSTHREETEXTBOXESANDLABELSTHATWERECREATEDBYUSINGTHEFOLLOWINGCODEADDNEWLABEL“ENTERYOURNAME”ADDNEWTEXTFIELD“YOURNAMEHERE”,45ADDNEWLABEL“ENTERYOURPHONENUMBER”ADDNEWTEXTFIELD12ADDNEWLABEL“ENTERYOURPASSWORD”TEXTFIELDTNEWTEXTFIELD20TSETECHOCHARACTERADDTFIGURE138TEXTFIELDSTEXTFIELDSINHERITFROMTHECLASSTEXTCOMPONENTANDHAVEAWHOLESUITEOFMETHODS,BOTHINHERITEDFROMTHATCLASSANDDEFINEDINITSOWNCLASS,THATMAYBEUSEFULTOYOUINYOURJAVAPROGRAMSTABLE134SHOWSASELECTIONOFTHOSEMETHODSGETTEXTRETURNSTHETEXTTHISTEXTFIELDCONTAINSASASTRINGSETTEXTSTRINGPUTSTHEGIVENTEXTSTRINGINTOTHEFIELDGETCOLUMNSRETURNSTHEWIDTHOFTHISTEXTFIELDSELECTINT,INTSELECTSTHETEXTBETWEENTHETWOINTEGERPOSITIONSPOSITIONSSTARTFROM0SELECTALLSELECTSALLTHETEXTINTHEFIELDISEDITABLERETURNSTRUEORFALSEBASEDONWHETHERTHETEXTISEDITABLEORNOTSETEDITABLEBOOLEANTRUETHEDEFAULTENABLESTEXTTOBEEDITEDFALSEFREEZESTHETEXTGETECHOCHARRETURNSTHECHARACTERUSEDFORMASKINGINPUTECHOCHARISSETRETURNSTRUEORFALSEWHETHERTHEFIELDHASAMASKINGCHARACTERORNOTPANELSANDLAYOUTYOUKNOWATTHISPOINTTHATANAWTPANELCANCONTAINUICOMPONENTSOROTHERPANELSTHEQUESTIONNOWISHOWTHOSECOMPONENTSAREACTUALLYARRANGEDANDDISPLAYEDONTHESCREENINOTHERWINDOWINGSYSTEMS,UICOMPONENTSAREOFTENARRANGEDUSINGHARDCODEDPIXELMEASUREMENTSPUTTEXTFIELDTFAT10,30,FOREXAMPLETHESAMEWAYYOUUSEDTHEGRAPHICSOPERATIONSTOPAINTSQUARESANDOVALSONTHESCREENINTHEAWT,THEWINDOWMAYBEDISPLAYEDONMANYDIFFERENTWINDOWINGSYSTEMSONMANYDIFFERENTSCREENSANDWITHMANYDIFFERENTKINDSOFFONTSWITHDIFFERENTFONTMETRICSTHEREFORE,YOUNEEDAMOREFLEXIBLEMETHODOFARRANGINGCOMPONENTSONTHESCREENSOTHATALAYOUTTHATLOOKSNICEONONEPLATFORMISNTAJUMBLEDUNUSABLEMESSONANOTHERFORJUSTTHISPURPOSE,JAVAHASLAYOUTMANAGERS,INSETS,ANDHINTSTHATEACHCOMPONENTCANPROVIDEFORHELPINGLAYOUTTHESCREENNOTETHATTHENICETHINGABOUTAWTCOMPONENTSANDUSERINTERFACEITEMSISTHATYOUDONTHAVETOPAINTTHEMTHEAWTSYSTEMMANAGESALLTHATFORYOUIFYOUHAVEGRAPHICALCOMPONENTSORIMAGES,ORYOUWANTTOCREATEANIMATIONSINSIDEPANELS,YOUSTILLHAVETODOTHATBYHAND,BUTFORMOSTOFTHEBASICCOMPONENTS,ALLYOUHAVETODOISPUTTHEMONTHESCREENANDJAVAWILLHANDLETHEREST中文翻譯JAVA抽象窗口工具包在過(guò)去的五天中,你學(xué)會(huì)了用JAVA程序來(lái)完成一些簡(jiǎn)單的任務(wù)顯示文本、播放一段動(dòng)畫(huà)或者聲音、或者和用戶(hù)進(jìn)行簡(jiǎn)單的人機(jī)交互。一旦你掌握了這些,你也許就會(huì)想要開(kāi)發(fā)一些更加復(fù)雜的程序,諸如嵌入在WEB頁(yè)面上的那些具有按鈕、菜單、文本框等真正的GUI程序。JAVA抽象窗口工具包(以下我們會(huì)簡(jiǎn)稱(chēng)其為AWT)即是為這類(lèi)應(yīng)用而設(shè)計(jì)的。事實(shí)上也許你會(huì)從你導(dǎo)入的那些類(lèi)庫(kù)中發(fā)現(xiàn),你其實(shí)一直在使用AWT。那些APPLET類(lèi)庫(kù)和本周你使用的其它大部分類(lèi)庫(kù)都是AWT的一部分。事實(shí)上,HOTJAVA瀏覽器也是用了AWT寫(xiě)的JAVA程序。AWT提供如下功能全套的UI組件及其它控件,包括窗口、菜單、按鈕、文本框、復(fù)選框、滾動(dòng)條和滾動(dòng)列表;支持UI“容器”,它可以包含其它嵌入的容器或者UI組件;一個(gè)用于在部分AWT之間管理系統(tǒng)和用戶(hù)事件的事件系統(tǒng);一種UI設(shè)計(jì)中的控件分布可以獨(dú)立于平臺(tái)的機(jī)制。今天你將學(xué)習(xí)怎樣在你的JAVA程序中運(yùn)用這些功能。明天你將會(huì)學(xué)習(xí)到如何創(chuàng)建窗口、菜單和對(duì)話框,從而可以在瀏覽窗口中彈出獨(dú)立的窗口。此外,你也可以單獨(dú)運(yùn)用AWT,如果這樣的話,迄今為止本周你所學(xué)到的知識(shí)仍舊可以得以應(yīng)用。若你覺(jué)得WEB瀏覽器的框架十分有限的話,你也可以用你自己的AWT知識(shí)編寫(xiě)全部的JAVA應(yīng)用程序。今天,你將會(huì)繼續(xù)學(xué)習(xí)JAVA程序。注意這是目前為止最復(fù)雜的一課,因?yàn)橛性S多內(nèi)容和大量代碼要掌握。因此,若你覺(jué)得太難了,最好花兩天(或更多的時(shí)間)來(lái)完成本課的學(xué)習(xí)。AWT簡(jiǎn)介AWT的基本思想是JAVA窗口是由一組嵌套的控件(從最外層的窗口一直到最小的UI控件)。控件可以包含那些你在屏幕上可以實(shí)際看得到的,諸如窗口、菜單欄、按鈕、文本框等,同時(shí)它也可以包含容器,這些容器同樣也可以包含其它控件。圖131顯示了一個(gè)JAVA瀏覽器的樣本頁(yè)面,它可以包含幾種不同的控件,這些控件均由AWT管理。那些包含在其它控件的容器中的嵌套控件創(chuàng)建出了包括從最小的復(fù)選框到屏幕上整個(gè)窗口的分層控件。這些分層控件決定了屏幕上組件的排列及其顯示順序、事件是怎么樣從一個(gè)控件過(guò)渡到另一個(gè)控件的。圖131AWT控件以下是你可以使用的AWT的主要控件容器容器是AWT的普通控件,它可以包含其它的控件及其容器。容器最通常的形式是面板,它表示一個(gè)容器可以在屏幕上顯示。JAVA小程序是面板的一種形式(事實(shí)上,APPLET類(lèi)庫(kù)是面板類(lèi)庫(kù)的一個(gè)子集)。畫(huà)布畫(huà)布是一個(gè)簡(jiǎn)單的繪畫(huà)界面。雖然你也可以在面板上畫(huà)畫(huà)(正如你以前一直在做的那樣),但是畫(huà)布更適于繪制圖像及其它圖形。窗口菜單欄程序面板畫(huà)布更多面板文本框標(biāo)簽UI控件它可以包含按鈕、列表、簡(jiǎn)單的彈出菜單、復(fù)選框、文本框和其它用于用戶(hù)界面的典型組件。窗口結(jié)構(gòu)控件它包括了窗口、框架、菜單欄、對(duì)話框。由于通常來(lái)說(shuō)它們用得不多,主要在JAVA程序中使用,一般經(jīng)常與其它UI控件分開(kāi)來(lái)列出。在JAVA程序中,瀏覽器提供了主要窗口和菜單欄,因此你不需要使用這些窗口控件。你的JAVA程序也許會(huì)創(chuàng)建一個(gè)新的窗口,或者你會(huì)想要寫(xiě)一個(gè)使用這些控件的自己的JAVA程序。JAVAAWT包的類(lèi)庫(kù)反映出了容器、控件及獨(dú)立的UI控件的抽象結(jié)構(gòu)。圖132展示了組成AWT主要的類(lèi)庫(kù)的類(lèi)分層結(jié)構(gòu)。大部分AWT控件的根部是控件類(lèi)庫(kù),它提供了基本的顯示和事件處理特性。容器、畫(huà)布、文本控件及其它UI控件等類(lèi)庫(kù)均繼承于控件類(lèi)庫(kù)。從容器類(lèi)庫(kù)中延伸出來(lái)的是能夠包含其它AWT控件的面板類(lèi)庫(kù)和窗口類(lèi)庫(kù)。值得注意的是,即便JAVAAPPLETAPPLET類(lèi)庫(kù)存在于它自己的包中,但是它也是繼承于面板類(lèi)庫(kù)的,因此你的JAVA程序是AWT系統(tǒng)中控件分層體系中的一部分。使用AWT編寫(xiě)的圖形用戶(hù)界面應(yīng)用程序可以非常復(fù)雜,其中可包含幾十個(gè)相互嵌套的容器和控件。AWT被設(shè)計(jì)成為每個(gè)控件都可以在AWT系統(tǒng)中完成它自己的功能而不需要復(fù)制或者追蹤系統(tǒng)中的其它部分的行為。圖132AWT類(lèi)庫(kù)分層體系的一部分基本用戶(hù)界面控件AWT控件最簡(jiǎn)單的形式是基本用戶(hù)界面(UI)控件。你可以把它創(chuàng)建和添加到你自己的應(yīng)用程序中而不需要知道如何創(chuàng)建容器或面板。由于一個(gè)JAVA程序是一個(gè)容器,你可以把其它AWT控件,比如就像UI控件或其它控件都放進(jìn)去。在本節(jié)中,你將會(huì)學(xué)習(xí)到基本的UI控件標(biāo)簽、按鈕、復(fù)選框、選擇菜單和文本框。創(chuàng)建這些控件的步驟都是一樣的,即先創(chuàng)建控件,然后把它添加到承載它的面板中去,并在屏幕上顯示出來(lái)。把控件添加到面板中去,使用ADD語(yǔ)句PUBLICVOIDINITBUTTONBNEWBUTTON“OK”ADDB控件畫(huà)布容器文本控件按鈕面板文本框窗口JAVA小程序?qū)υ捒蚩蚣茏⒁?,控件在面板中顯示的位置取決于面板的布局類(lèi)型是怎么樣定義的。面板默認(rèn)的布局類(lèi)型是居中排列的流式布局(FLOWLAYOUT),即控件由左至右,按行添加,每行居中排列。這也解釋了為什么在本節(jié)里面有些例子會(huì)看起來(lái)有點(diǎn)奇特。在下一節(jié),你將學(xué)習(xí)更多的面板及其布局。另外需要注意的是,每個(gè)控件均帶有與其相關(guān)聯(lián)的動(dòng)作。動(dòng)作觸發(fā)了程序中的事件或其它行為(在其它窗口工具包中常被稱(chēng)為回調(diào))。本節(jié)中,你將主要學(xué)習(xí)如何創(chuàng)建控件本身。在今天課程的后面部分將學(xué)習(xí)如何將動(dòng)作添加到控件中去。下面來(lái)學(xué)習(xí)控件標(biāo)簽UI控件最簡(jiǎn)單的形式是標(biāo)簽。標(biāo)簽是你用來(lái)有效標(biāo)記其它UI控件的文本字符串。與普通的文本字符串相比,標(biāo)簽的好處是它的布局與面板的布局一致,每當(dāng)你重新畫(huà)面板時(shí),你不必重新布置標(biāo)簽。標(biāo)簽也可以在面板內(nèi)重新排列,你可以把標(biāo)簽運(yùn)用到其它UI控件上,而無(wú)需知道它的確切物理位置。使用下述任一種方法可以創(chuàng)建標(biāo)簽LABEL創(chuàng)建一個(gè)空標(biāo)簽,文本位于左側(cè);LABELSTRING創(chuàng)建一個(gè)帶有文本字符串的標(biāo)簽,文本位于左側(cè);LABELSTRING,INT創(chuàng)建一個(gè)帶有文本字符串及固定位置的標(biāo)簽。位置信息儲(chǔ)存在標(biāo)簽的類(lèi)變量中,很容易記憶LABELRIGHT(右側(cè)),LABELLEFT(左側(cè))及LABELCENTER(居中)。標(biāo)簽的字體與控件的字體一致(由SETFONT定義)。下面是創(chuàng)建幾個(gè)標(biāo)簽的簡(jiǎn)單代碼。圖133為它們?cè)谄聊簧系娘@示。ADDNEWLABEL“ALIGNEDLEFT”ADDNEWLABEL“ALIGNEDCENTER”,LABELCENTERADDNEWLABEL“ALIGNEDRIGHT”,LABELRIGHT圖133標(biāo)簽一旦你有一個(gè)標(biāo)簽對(duì)象,你就可以使用標(biāo)簽類(lèi)庫(kù)中定義的方法來(lái)獲取和設(shè)置文本,如表131所示。表131標(biāo)簽用法方法動(dòng)作GETTEXT返回一個(gè)包含標(biāo)簽文本的字符串SETTEXTSTRING改變標(biāo)簽的文本GETALIGNMENT返回一個(gè)代表標(biāo)簽位置的整數(shù)0是LABELLEFT,1是LABELCENTER,2是LABELRIGHTSETALIGNMENTINT改變標(biāo)簽的位置至設(shè)定的整數(shù)或類(lèi)變量按鈕第二種UI控件是按鈕。按鈕是一種簡(jiǎn)單的UI控件,它可以在被按下時(shí)觸發(fā)你的程序界面中的一些動(dòng)作。例如,在計(jì)算器程序中,每個(gè)數(shù)字及運(yùn)算都對(duì)應(yīng)有按鈕。或是一個(gè)對(duì)話框中有“OK”和“CANCEL”按鈕。使用下述任一種方法可以創(chuàng)建按鈕BUTTON創(chuàng)建一個(gè)沒(méi)有標(biāo)簽的空按鈕;BUTTONSTRING創(chuàng)建一個(gè)帶有給定字符串標(biāo)簽的按鈕。一旦你有一個(gè)按鈕對(duì)象,你就可以使用GETLABEL來(lái)獲得按鈕的標(biāo)簽值,用SETLABELSTRING來(lái)設(shè)置按鈕的標(biāo)簽。圖134是使用如下代碼創(chuàng)建的一些簡(jiǎn)單按鈕ADDNEWBUTTON“REWIND”ADDNEWBUTTON“PLAY”ADDNEWBUTTON“FASTFORWARD”ADDNEWBUTTON“STOP”圖134按鈕復(fù)選框復(fù)選框可以通過(guò)選擇或不選擇來(lái)提供選項(xiàng)。復(fù)選框是有兩種狀態(tài)的UI控件開(kāi)和關(guān)(或是選擇/不選擇,對(duì)/錯(cuò)等等)。與其它按鈕不同的是,復(fù)選框通常不會(huì)直接觸發(fā)動(dòng)作,而是用來(lái)指示其它動(dòng)作的選擇性。復(fù)選框有兩種使用方法非唯一的,即可以在給出的一系列復(fù)選框中任意選擇;唯一的,即在一個(gè)系列中,每次僅有一個(gè)復(fù)選框可選。后面一種復(fù)選框也稱(chēng)為單選框或復(fù)選框組,在下一節(jié)將會(huì)詳細(xì)介紹。非唯一的復(fù)選框可以使用復(fù)選框類(lèi)庫(kù)創(chuàng)建。你可以使用下述任一種方法創(chuàng)建復(fù)選框CHECKBOX創(chuàng)建一個(gè)空的、未選擇的復(fù)選框;CHECKBOXST
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版智能凈水系統(tǒng)安裝與維護(hù)服務(wù)合同范本
- 二零二五年度餐飲場(chǎng)地租賃及節(jié)假日促銷(xiāo)合同
- 2025版復(fù)雜多元化主題公園美陳設(shè)施租賃合同
- 2025版房地產(chǎn)項(xiàng)目投資買(mǎi)賣(mài)合伙人合作協(xié)議范本
- 二零二五版?zhèn)€人養(yǎng)老理財(cái)擔(dān)保合同
- 2025版網(wǎng)絡(luò)安全防護(hù)技術(shù)服務(wù)合同書(shū)
- 二零二五年度房產(chǎn)分割協(xié)議書(shū):父母房產(chǎn)分割與子女未來(lái)發(fā)展保障
- 二零二五年度建筑工程監(jiān)理補(bǔ)充協(xié)議范本(綠色環(huán)保材料專(zhuān)項(xiàng))
- 2025版電商企業(yè)客戶(hù)信息保密及網(wǎng)絡(luò)安全保護(hù)協(xié)議
- 二零二五年度企業(yè)領(lǐng)導(dǎo)力培訓(xùn)合同
- 烹飪職業(yè)道德課件
- 烤煙栽培技術(shù)課件
- 藥品投訴處理方案(3篇)
- 2025至2030中國(guó)一次性拖鞋行業(yè)市場(chǎng)深度研究及發(fā)展前景投資可行性分析報(bào)告
- (高清版)DB32∕T 5133-2025 電動(dòng)工具安全風(fēng)險(xiǎn)評(píng)估規(guī)范
- 露天礦急救自救互救培訓(xùn)
- 福建醫(yī)科大學(xué)《英語(yǔ)視聽(tīng)(3)》2023-2024學(xué)年第一學(xué)期期末試卷
- 生命體征培訓(xùn)
- 無(wú)廢城市培訓(xùn)
- 2025至2030高純氟聚合物(PFA)行業(yè)項(xiàng)目調(diào)研及市場(chǎng)前景預(yù)測(cè)評(píng)估報(bào)告
- 腫瘤患者的舒適化護(hù)理
評(píng)論
0/150
提交評(píng)論