




已阅读5页,还剩14页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
外文原文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抽象窗口工具包在过去的五天中,你学会了用JAVA程序来完成一些简单的任务显示文本、播放一段动画或者声音、或者和用户进行简单的人机交互。一旦你掌握了这些,你也许就会想要开发一些更加复杂的程序,诸如嵌入在WEB页面上的那些具有按钮、菜单、文本框等真正的GUI程序。JAVA抽象窗口工具包(以下我们会简称其为AWT)即是为这类应用而设计的。事实上也许你会从你导入的那些类库中发现,你其实一直在使用AWT。那些APPLET类库和本周你使用的其它大部分类库都是AWT的一部分。事实上,HOTJAVA浏览器也是用了AWT写的JAVA程序。AWT提供如下功能全套的UI组件及其它控件,包括窗口、菜单、按钮、文本框、复选框、滚动条和滚动列表;支持UI“容器”,它可以包含其它嵌入的容器或者UI组件;一个用于在部分AWT之间管理系统和用户事件的事件系统;一种UI设计中的控件分布可以独立于平台的机制。今天你将学习怎样在你的JAVA程序中运用这些功能。明天你将会学习到如何创建窗口、菜单和对话框,从而可以在浏览窗口中弹出独立的窗口。此外,你也可以单独运用AWT,如果这样的话,迄今为止本周你所学到的知识仍旧可以得以应用。若你觉得WEB浏览器的框架十分有限的话,你也可以用你自己的AWT知识编写全部的JAVA应用程序。今天,你将会继续学习JAVA程序。注意这是目前为止最复杂的一课,因为有许多内容和大量代码要掌握。因此,若你觉得太难了,最好花两天(或更多的时间)来完成本课的学习。AWT简介AWT的基本思想是JAVA窗口是由一组嵌套的控件(从最外层的窗口一直到最小的UI控件)。控件可以包含那些你在屏幕上可以实际看得到的,诸如窗口、菜单栏、按钮、文本框等,同时它也可以包含容器,这些容器同样也可以包含其它控件。图131显示了一个JAVA浏览器的样本页面,它可以包含几种不同的控件,这些控件均由AWT管理。那些包含在其它控件的容器中的嵌套控件创建出了包括从最小的复选框到屏幕上整个窗口的分层控件。这些分层控件决定了屏幕上组件的排列及其显示顺序、事件是怎么样从一个控件过渡到另一个控件的。图131AWT控件以下是你可以使用的AWT的主要控件容器容器是AWT的普通控件,它可以包含其它的控件及其容器。容器最通常的形式是面板,它表示一个容器可以在屏幕上显示。JAVA小程序是面板的一种形式(事实上,APPLET类库是面板类库的一个子集)。画布画布是一个简单的绘画界面。虽然你也可以在面板上画画(正如你以前一直在做的那样),但是画布更适于绘制图像及其它图形。窗口菜单栏程序面板画布更多面板文本框标签UI控件它可以包含按钮、列表、简单的弹出菜单、复选框、文本框和其它用于用户界面的典型组件。窗口结构控件它包括了窗口、框架、菜单栏、对话框。由于通常来说它们用得不多,主要在JAVA程序中使用,一般经常与其它UI控件分开来列出。在JAVA程序中,浏览器提供了主要窗口和菜单栏,因此你不需要使用这些窗口控件。你的JAVA程序也许会创建一个新的窗口,或者你会想要写一个使用这些控件的自己的JAVA程序。JAVAAWT包的类库反映出了容器、控件及独立的UI控件的抽象结构。图132展示了组成AWT主要的类库的类分层结构。大部分AWT控件的根部是控件类库,它提供了基本的显示和事件处理特性。容器、画布、文本控件及其它UI控件等类库均继承于控件类库。从容器类库中延伸出来的是能够包含其它AWT控件的面板类库和窗口类库。值得注意的是,即便JAVAAPPLETAPPLET类库存在于它自己的包中,但是它也是继承于面板类库的,因此你的JAVA程序是AWT系统中控件分层体系中的一部分。使用AWT编写的图形用户界面应用程序可以非常复杂,其中可包含几十个相互嵌套的容器和控件。AWT被设计成为每个控件都可以在AWT系统中完成它自己的功能而不需要复制或者追踪系统中的其它部分的行为。图132AWT类库分层体系的一部分基本用户界面控件AWT控件最简单的形式是基本用户界面(UI)控件。你可以把它创建和添加到你自己的应用程序中而不需要知道如何创建容器或面板。由于一个JAVA程序是一个容器,你可以把其它AWT控件,比如就像UI控件或其它控件都放进去。在本节中,你将会学习到基本的UI控件标签、按钮、复选框、选择菜单和文本框。创建这些控件的步骤都是一样的,即先创建控件,然后把它添加到承载它的面板中去,并在屏幕上显示出来。把控件添加到面板中去,使用ADD语句PUBLICVOIDINITBUTTONBNEWBUTTON“OK”ADDB控件画布容器文本控件按钮面板文本框窗口JAVA小程序对话框框架注意,控件在面板中显示的位置取决于面板的布局类型是怎么样定义的。面板默认的布局类型是居中排列的流式布局(FLOWLAYOUT),即控件由左至右,按行添加,每行居中排列。这也解释了为什么在本节里面有些例子会看起来有点奇特。在下一节,你将学习更多的面板及其布局。另外需要注意的是,每个控件均带有与其相关联的动作。动作触发了程序中的事件或其它行为(在其它窗口工具包中常被称为回调)。本节中,你将主要学习如何创建控件本身。在今天课程的后面部分将学习如何将动作添加到控件中去。下面来学习控件标签UI控件最简单的形式是标签。标签是你用来有效标记其它UI控件的文本字符串。与普通的文本字符串相比,标签的好处是它的布局与面板的布局一致,每当你重新画面板时,你不必重新布置标签。标签也可以在面板内重新排列,你可以把标签运用到其它UI控件上,而无需知道它的确切物理位置。使用下述任一种方法可以创建标签LABEL创建一个空标签,文本位于左侧;LABELSTRING创建一个带有文本字符串的标签,文本位于左侧;LABELSTRING,INT创建一个带有文本字符串及固定位置的标签。位置信息储存在标签的类变量中,很容易记忆LABELRIGHT(右侧),LABELLEFT(左侧)及LABELCENTER(居中)。标签的字体与控件的字体一致(由SETFONT定义)。下面是创建几个标签的简单代码。图133为它们在屏幕上的显示。ADDNEWLABEL“ALIGNEDLEFT”ADDNEWLABEL“ALIGNEDCENTER”,LABELCENTERADDNEWLABEL“ALIGNEDRIGHT”,LABELRIGHT图133标签一旦你有一个标签对象,你就可以使用标签类库中定义的方法来获取和设置文本,如表131所示。表131标签用法方法动作GETTEXT返回一个包含标签文本的字符串SETTEXTSTRING改变标签的文本GETALIGNMENT返回一个代表标签位置的整数0是LABELLEFT,1是LABELCENTER,2是LABELRIGHTSETALIGNMENTINT改变标签的位置至设定的整数或类变量按钮第二种UI控件是按钮。按钮是一种简单的UI控件,它可以在被按下时触发你的程序界面中的一些动作。例如,在计算器程序中,每个数字及运算都对应有按钮。或是一个对话框中有“OK”和“CANCEL”按钮。使用下述任一种方法可以创建按钮BUTTON创建一个没有标签的空按钮;BUTTONSTRING创建一个带有给定字符串标签的按钮。一旦你有一个按钮对象,你就可以使用GETLABEL来获得按钮的标签值,用SETLABELSTRING来设置按钮的标签。图134是使用如下代码创建的一些简单按钮ADDNEWBUTTON“REWIND”ADDNEWBUTTON“PLAY”ADDNEWBUTTON“FASTFORWARD”ADDNEWBUTTON“STOP”图134按钮复选框复选框可以通过选择或不选择来提供选项。复选框是有两种状态的UI控件开和关(或是选择/不选择,对/错等等)。与其它按钮不同的是,复选框通常不会直接触发动作,而是用来指示其它动作的选择性。复选框有两种使用方法非唯一的,即可以在给出的一系列复选框中任意选择;唯一的,即在一个系列中,每次仅有一个复选框可选。后面一种复选框也称为单选框或复选框组,在下一节将会详细介绍。非唯一的复选框可以使用复选框类库创建。你可以使用下述任一种方法创建复选框CHECKBOX创建一个空的、未选择的复选框;CHECKBOXST
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高承台桩施工方案
- 浙江网络营销策划方案
- 建筑领域施工方案设计
- 2024-2025学年度教师公开招聘测试卷及答案详解(典优)
- 保安员考试高频难、易错点题附答案详解(典型题)
- 2025年自考专业(人力资源管理)练习题【考试直接用】附答案详解
- 2024安全员考试高频难、易错点题及答案详解(必刷)
- 2025年应聘监控员面试题及答案
- 数据存储及分析解决方案合同
- 2024-2025学年主管护师(中级)真题附参考答案详解(基础题)
- 《节水型高校评价标准》
- GB/T 31771-2024家政服务母婴护理服务质量规范
- 哮喘治疗原理及方法
- 《植物的组织培养》课件
- 临床护理带教老师培训
- 初中体育与健康八年级 第十一章 民族民间体育-三人板鞋 教案
- 大疆80分钟在线测评题
- 财政投资项目评审服务投标方案(技术方案)
- 《新媒体营销》课件-2 直播商品卖点提炼
- 中国冠心病康复循证实践指南(2024版)第一部分
- AQ 1083-2011 煤矿建设安全规范 (正式版)
评论
0/150
提交评论