翻译文献-图形,字体和颜色_第1页
翻译文献-图形,字体和颜色_第2页
翻译文献-图形,字体和颜色_第3页
翻译文献-图形,字体和颜色_第4页
翻译文献-图形,字体和颜色_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

外文原文GRAPHICS,FONTS,ANDCOLORTHEGRAPHICSCLASSWITHJAVASGRAPHICSCAPABILITIES,YOUCANDRAWLINES,SHAPES,CHARACTERS,ANDIMAGESTOTHESCREENINSIDEYOURAPPLETMOSTOFTHEGRAPHICSOPERATIONSINJAVAAREMETHODSDEFINEDINTHEGRAPHICSCLASSYOUDONTHAVETOCREATEANINSTANCEOFGRAPHICSINORDERTODRAWSOMETHINGINYOURAPPLETINYOURAPPLETSPAINTMETHODWHICHYOULEARNEDABOUTYESTERDAY,YOUAREGIVENAGRAPHICSOBJECTBYDRAWINGONTHATOBJECT,YOUDRAWONTOYOURAPPLETANDTHERESULTSAPPEARONSCREENTHEGRAPHICSCLASSISPARTOFTHEJAVAAWTPACKAGE,SOIFYOURAPPLETDOESANYPAINTINGASITUSUALLYWILL,MAKESUREYOUIMPORTTHATCLASSATTHEBEGINNINGOFYOURJAVAFILEIMPORTJAVAAWTGRAPHICSPUBLICCLASSMYCLASSEXTENDEDJAVAAPPLETAPPLETTHEGRAPHICSCOORDINATESYSTEMTODRAWANOBJECTONTHESCREEN,YOUCALLONEOFTHEDRAWINGMETHODSAVAILABLEINTHEGRAPHICSCLASSALLTHEDRAWINGMETHODSHAVEARGUMENTSREPRESENTINGENDPOINTS,CORNERS,ORSTARTINGLOCATIONSOFTHEOBJECTASVALUESINTHEAPPLETSCOORDINATESYSTEMFOREXAMPLE,ALINESTARTSATTHEPOINTS10,10ANDENDSATTHEPOINTS20,20JAVASCOORDINATESYSTEMHASTHEORIGIN0,0INTHETOPLEFTCORNERPOSITIVEXVALUESARETOTHERIGHT,ANDPOSITIVEYVALUESAREDOWNALLPIXELVALUESAREINTEGERSTHEREARENOPARTIALORFRACTIONALPIXELSFIGURE91SHOWSHOWYOUMIGHTDRAWASIMPLESQUAREBYUSINGTHISCOORDINATESYSTEMJAVASCOORDINATESYSTEMISDIFFERENTFROMMANYPAINTINGANDLAYOUTPROGRAMSTHATHAVETHEIRXANDYINTHEBOTTOMLEFTIFYOURENOTUSEDTOWORKINGWITHTHISUPSIDEDOWNGRAPHICSSYSTEM,ITMAYTAKESOMEPRACTICETOGETFAMILIARWITHITDRAWINGANDFILLINGTHEGRAPHICSCLASSPROVIDESASETOFSIMPLEBUILTINGRAPHICSPRIMITIVESFORDRAWING,INCLUDINGLINES,RECTANGLES,POLYGONS,OVALS,ANDARCSLINESTODRAWSTRAIGHTLINES,USETHEDRAWLINEMETHODDRAWLINETAKESFOURARGUMENTSTHEXANDYCOORDINATESOFTHESTARTINGPOINTANDTHEXANDYCOORDINATESOFTHEENDINGPOINTPUBLICVOIDPAINTGRAPHICSGGDRAWLINE25,25,75,75FIGURE92SHOWSTHERESULTOFTHISSNIPPETOFCODERECTANGLESTHEJAVAGRAPHICSPRIMITIVESPROVIDENOTJUSTONE,BUTTHREEKINDSOFRECTANGLESPLAINRECTANGLESROUNDEDRECTANGLES,WHICHARERECTANGLESWITHROUNDEDCORNERSTHREEDIMENSIONALRECTANGLES,WHICHAREDRAWNWITHASHADEDBORDERFOREACHOFTHESERECTANGLES,YOUHAVETWOMETHODSTOCHOOSEFROMONETHATDRAWSTHERECTANGLEINOUTLINEFORM,ANDONETHATDRAWSTHERECTANGLEFILLEDWITHCOLORTODRAWAPLAINRECTANGLE,USEEITHERTHEDRAWRECTORFILLRECTMETHODSBOTHTAKEFOURARGUMENTSTHEXANDYCOORDINATESOFTHETOPLEFTCORNEROFTHERECTANGLE,ANDTHEWIDTHANDHEIGHTOFTHERECTANGLETODRAWFOREXAMPLE,THEFOLLOWINGPAINTMETHODDRAWSTWOSQUARESTHELEFTONEISANOUTLINEANDTHERIGHTONEISFILLEDFIGURE93SHOWSTHERESULTPUBLICVOIDPAINTGRAPHICSGGDRAWRECT20,20,60,60GFILLRECT120,20,60,60ROUNDEDRECTANGLESARE,ASYOUMIGHTEXPECT,RECTANGLESWITHROUNDEDEDGESTHEDRAWROUNDRECTANDFILLROUNDRECTMETHODSTODRAWROUNDEDRECTANGLESARESIMILARTOREGULARRECTANGLESEXCEPTTHATROUNDEDRECTANGLESHAVETWOEXTRAARGUMENTSFORTHEWIDTHANDHEIGHTOFTHEANGLEOFTHECORNERSTHOSETWOARGUMENTSDETERMINEHOWFARALONGTHEEDGESOFTHERECTANGLETHEARCFORTHECORNERWILLSTARTTHEFIRSTFORTHEANGLEALONGTHEHORIZONTALPLANE,THESECONDFORTHEVERTICALLARGERVALUESFORTHEANGLEWIDTHANDHEIGHTMAKETHEOVERALLRECTANGLEMOREROUNDEDVALUESEQUALTOTHEWIDTHANDHEIGHTOFTHERECTANGLEITSELFPRODUCEACIRCLEFIGURE94SHOWSSOMEEXAMPLESOFROUNDEDCORNERSHERESAPAINTMETHODTHATDRAWSTWOROUNDEDRECTANGLESONEASANOUTLINEWITHAROUNDEDCORNER10PIXELSSQUARETHEOTHER,FILLED,WITHAROUNDEDCORNER20PIXELSSQUAREFIGURE95SHOWSTHERESULTINGSQUARESPUBLICVOIDPAINTGRAPHICSGGDRAWROUNDRECT20,20,60,60,10,10GFILLROUNDRECT120,20,60,60,20,20FINALLY,THEREARETHREEDIMENSIONALRECTANGLESTHESERECTANGLESARENTREALLY3DINSTEAD,THEYHAVEASHADOWEFFECTTHATMAKESTHEMAPPEAREITHERRAISEDORINDENTEDFROMTHESURFACEOFTHEAPPLETTHREEDIMENSIONALRECTANGLESHAVEFOURARGUMENTSFORTHEXANDYOFTHESTARTPOSITIONANDTHEWIDTHANDHEIGHTOFTHERECTANGLETHEFIFTHARGUMENTISABOOLEANINDICATINGWHETHERTHE3DEFFECTISTORAISETHERECTANGLETRUEORINDENTITFALSEASWITHTHEOTHERRECTANGLES,THEREAREALSODIFFERENTMETHODSFORDRAWINGANDFILLINGDRAW3DRECTANDFILL3DRECTHERESCODETOPRODUCETWOOFTHEMTHELEFTONEINDENTED,THERIGHTONERAISEDFIGURE96SHOWSTHERESULTPUBLICVOIDPAINTGRAPHICSGGDRAW3DRECT20,20,60,60,TRUEGDRAW3DRECT120,20,60,60,FALSEPOLYGONSPOLYGONSARESHAPESWITHANUNLIMITEDNUMBEROFSIDESTODRAWAPOLYGON,YOUNEEDASETOFXANDYCOORDINATES,ANDTHEDRAWINGMETHODTHENSTARTSATONE,DRAWSALINETOTHESECOND,THENALINETOTHETHIRD,ANDSOONASWITHRECTANGLES,YOUCANDRAWANOUTLINEORAFILLEDPOLYGONTHEDRAWPOLYGONANDFILLPOLYGONMETHODS,RESPECTIVELYYOUALSOHAVEACHOICEOFHOWYOUWANTTOINDICATETHELISTOFCOORDINATESEITHERASARRAYSOFXANDYCOORDINATESORASANINSTANCEOFTHEPOLYGONCLASSUSINGTHEFIRSTMETHOD,THEDRAWPOLYGONANDFILLPOLYGONMETHODSTAKETHREEARGUMENTSANARRAYOFINTEGERSREPRESENTINGXCOORDINATESANARRAYOFINTEGERSREPRESENTINGYCOORDINATESANINTEGERFORTHETOTALNUMBEROFPOINTSTHEXANDYARRAYSSHOULD,OFCOURSE,HAVETHESAMENUMBEROFELEMENTSHERESANEXAMPLEOFDRAWINGAPOLYGONSOUTLINEBYUSINGTHISMETHODFIGURE97SHOWSTHERESULTPUBLICVOIDPAINTGRAPHICSGINTEXES39,94,97,142,53,58,26INTWHYS33,74,36,70,108,80,106INTPTSEXESLENGTHGDRAWPOLYGONEXES,WHYS,PTSTHESECONDWAYOFCALLINGDRAWPOLYGONANDFILLPOLYGONISTOUSEAPOLYGONOBJECTTHEPOLYGONCLASSISUSEFULIFYOUINTENDTOADDPOINTSTOTHEPOLYGONORIFYOUREBUILDINGTHEPOLYGONONTHEFLYTHEPOLYGONCLASSENABLESYOUTOTREATTHEPOLYGONASANOBJECTRATHERTHANHAVINGTODEALWITHINDIVIDUALARRAYSTOCREATEAPOLYGONOBJECTYOUCANEITHERCREATEANEMPTYPOLYGONPOLYGONPOLYNEWPOLYGONORCREATEAPOLYGONFROMASETOFPOINTSUSINGINTEGERARRAYS,ASINTHEPREVIOUSEXAMPLEINTEXES39,94,97,142,53,58,26INTWHYS33,74,36,70,108,80,106INTPTSEXESLENGTHPOLYGONPOLYNEWPOLYGONEXES,WHYS,PTSONCEYOUHAVEAPOLYGONOBJECT,YOUCANAPPENDPOINTSTOTHEPOLYGONASYOUNEEDTOPOLYADDPOINT20,35THEN,TODRAWTHEPOLYGON,JUSTUSETHEPOLYGONOBJECTASANARGUMENTTODRAWPOLYGONORFILLPOLYGONHERESTHATPREVIOUSEXAMPLE,REWRITTENTHISTIMEWITHAPOLYGONOBJECTYOULLALSOFILLTHISPOLYGONRATHERTHANJUSTDRAWINGITSOUTLINEFIGURE98SHOWSTHEOUTPUTPUBLICVOIDPAINTGRAPHICSGINTEXES39,94,97,142,53,58,26INTWHYS33,74,36,70,108,80,106INTPTSEXESLENGTHPOLYGONPOLYNEWPOLYGONEXES,WHYS,PTSGFILLPOLYGONPOLYCOPYINGANDCLEARINGONCEYOUVEDRAWNAFEWTHINGSONTHESCREEN,YOUMAYWANTTOMOVETHEMAROUNDORCLEARTHEENTIREAPPLETTHEGRAPHICSCLASSPROVIDESMETHODSFORDOINGBOTHTHESETHINGSTHECOPYAREAMETHODCOPIESARECTANGULARAREAOFTHESCREENTOANOTHERAREAOFTHESCREENCOPYAREATAKESSIXARGUMENTSTHEXANDYOFTHETOPCORNEROFTHERECTANGLETOCOPY,THEWIDTHANDTHEHEIGHTOFTHATRECTANGLE,ANDTHEDISTANCEINTHEXANDYDIRECTIONSTOWHICHTOCOPYITFOREXAMPLE,THISLINECOPIESASQUAREAREA100PIXELSONASIDE100PIXELSDIRECTLYTOITSRIGHTGCOPYAREA0,0,100,100,100,0TOCLEARARECTANGULARAREA,USETHECLEARRECTMETHODCLEARRECT,WHICHTAKESTHESAMEFOURARGUMENTSASTHEDRAWRECTANDFILLRECTMETHODS,FILLSTHEGIVENRECTANGLEWITHTHECURRENTBACKGROUNDCOLOROFTHEAPPLETYOULLLEARNHOWTOSETTHECURRENTBACKGROUNDCOLORLATERONTODAYTOCLEARTHEENTIREAPPLET,YOUCANUSETHESIZEMETHOD,WHICHRETURNSADIMENSIONOBJECTREPRESENTINGTHEWIDTHANDHEIGHTOFTHEAPPLETYOUCANTHENGETTOTHEACTUALVALUESFORWIDTHANDHEIGHTBYUSINGTHEWIDTHANDHEIGHTINSTANCEVARIABLESGCLEARRECT0,0,THISSIZEWIDTH,THISHEIGHTTEXTANDFONTSTHEGRAPHICSCLASSALSOENABLESYOUTOPRINTTEXTONTHESCREEN,INCONJUNCTIONWITHTHEFONTCLASS,AND,SOMETIMES,THEFONTMETRICSCLASSTHEFONTCLASSREPRESENTSAGIVENFONTITSNAME,STYLE,ANDPOINTSIZEANDFONTMETRICSGIVESYOUINFORMATIONABOUTTHATFONTFOREXAMPLE,THEACTUALHEIGHTORWIDTHOFAGIVENCHARACTERSOTHATYOUCANPRECISELYLAYOUTTEXTINYOURAPPLETNOTETHATTHETEXTHEREISSTATICTEXT,DRAWNTOTHESCREENONCEANDINTENDEDTOSTAYTHEREYOULLLEARNABOUTENTERINGTEXTFROMTHEKEYBOARDLATERONTHISWEEKCREATINGFONTOBJECTSTODRAWTEXTTOTHESCREEN,FIRSTYOUNEEDTOCREATEANINSTANCEOFTHEFONTCLASSFONTOBJECTSREPRESENTANINDIVIDUALFONTTHATIS,ITSNAME,STYLEBOLD,ITALIC,ANDPOINTSIZEFONTNAMESARESTRINGSREPRESENTINGTHEFAMILYOFTHEFONT,FOREXAMPLE,“TIMESROMAN”,“COURIER”,OR“HELVETICA”FONTSTYLESARECONSTANTSDEFINEDBYTHEFONTCLASSYOUCANGETTOTHEMUSINGCLASSVARIABLESFOREXAMPLE,FONTPLAIN,FONTBOLD,ORFONTITALICFINALLY,THEPOINTSIZEISTHESIZEOFTHEFONT,ASDEFINEDBYTHEFONTITSELFTHEPOINTSIZEMAYORMAYNOTBETHEHEIGHTOFTHECHARACTERSTOCREATEANINDIVIDUALFONTOBJECT,USETHESETHREEARGUMENTSTOTHEFONTCLASSSNEWCONSTRUCTORFONTFNEWFONT“TIMESROMAN”,FONTBOLD,24THISEXAMPLECREATESAFONTOBJECTFORTHETIMESROMANBOLDFONT,IN24POINTSNOTETHATLIKEMOSTJAVACLASSES,YOUHAVETOIMPORTTHISCLASSBEFOREYOUCANUSEITFONTSTYLESAREACTUALLYINTEGERCONSTANTSTHATCANBEADDEDTOCREATECOMBINEDSTYLESFOREXAMPLE,FONTBOLDFONTITALICPRODUCESAFONTTHATISBOTHBOLDANDITALICTHEFONTSYOUHAVEAVAILABLETOYOUINYOURAPPLETDEPENDONTHESYSTEMONWHICHTHEAPPLETISRUNNINGCURRENTLY,ALTHOUGHTHEREISAMECHANISMINJAVATOGETALISTOFFONTSSEETHEGETFONTLISTMETHOD,DEFINEDINTHEJAVAAWTTOOLKITCLASS,ITAPPEARSNOTTOBEWORKINGCURRENTLYINTHEBETAVERSIONOFTHEJDKONCETHESECAPABILITIESWORK,ITISPOSSIBLETOGETALISTOFFONTSONTHESYSTEMANDTOBEABLETOMAKECHOICESBASEDONTHATLISTFORNOW,TOMAKESUREYOURAPPLETISCOMPLETELYCOMPATIBLEACROSSSYSTEMS,ITSAVERYGOODIDEATOLIMITTHEFONTSYOUUSEINYOURAPPLETSTO“TIMESROMAN”,“HELVETICA”,AND“COURIER”IFJAVACANTFINDAFONTYOUWANTTOUSE,ITWILLSUBSTITUTESOMEDEFAULTFONT,USUALLYCOURIERDRAWINGCHARACTERSANDSTRINGSWITHAFONTOBJECTINHAND,YOUCANDRAWTEXTONTHESCREENUSINGTHEMETHODSDRAWCHARSANDDRAWSTRINGFIRST,THOUGH,YOUNEEDTOSETTHECURRENTFONTTOYOURFONTOBJECTUSINGTHESETFONTMETHODTHECURRENTFONTISPARTOFTHEGRAPHICSSTATETHATISKEPTTRACKOFBYTHEGRAPHICSOBJECTONWHICHYOUREDRAWINGEACHTIMEYOUDRAWACHARACTERORASTRINGTOTHESCREEN,THATTEXTISDRAWNBYUSINGTHECURRENTFONTTOCHANGETHEFONTOFTHETEXT,FIRSTCHANGETHECURRENTFONTHERESAPAINTMETHODTHATCREATESANEWFONT,SETSTHECURRENTFONTTOTHATFONT,ANDDRAWSTHESTRING“THISISABIGFONT”,STARTINGFROMTHEPOINT10,100PUBLICVOIDPAINTGRAPHICSGFONTFNEWFONT“TIMESROMAN”,FONTPLAIN,72GSETFONTFGDRAWSTRING“THISISABIGFONT”,10,100THISSHOULDALLLOOKFAMILIARTOYOUTHISISHOWTHEHELLOAPPLETSTHROUGHOUTTHISBOOKWEREPRODUCEDTHELATTERTWOARGUMENTSTODRAWSTRINGDETERMINETHEPOINTWHERETHESTRINGWILLSTARTTHEXVALUEISTHESTARTOFTHELEFTMOSTEDGEOFTHETEXTYISTHEBASELINEFORTHEENTIRESTRINGSIMILARTODRAWSTRINGISTHEDRAWCHARSMETHODTHAT,INSTEADOFTAKINGASTRINGASANARGUMENT,TAKESANARRAYOFCHARACTERSDRAWCHARSHASFIVEARGUMENTSTHEARRAYOFCHARACTERS,ANNINTEGERREPRESENTINGTHEFIRSTCHARACTERINTHEARRAYTODRAW,ANOTHERINTEGERFORTHELASTCHARACTERINTHEARRAYTODRAWALLCHARACTERSBETWEENTHEFIRSTANDLASTAREDRAWN,ANDTHEXANDYFORTHESTARTINGPOINTMOSTOFTHETIME,DRAWSTRINGISMOREUSEFULTHANDRAWCHARSLISTING92SHOWSANAPPLETTHATDRAWSSEVERALLINESOFTEXTINDIFFERENTFONTSFIGURE920SHOWSTHERESULTFINDINGOUTINFORMATIONABOUTAFONTSOMETIMES,YOUMAYWANTTOMAKEDECISIONSINYOURJAVAPROGRAMBASEDONTHEQUALITIESOFTHECURRENTFONTFOREXAMPLE,ITSPOINTSIZE,ORTHETOTALHEIGHTOFITSCHARACTERSYOUCANFINDOUTSOMEBASICINFORMATIONABOUTFONTSANDFONTOBJECTSBYUSINGSIMPLEMETHODSONGRAPHICSANDONTHEFONTOBJECTSTABLE91SHOWSSOMEOFTHESEMETHODSFORMOREDETAILEDINFORMATIONABOUTTHEQUALITIESOFTHECURRENTFONTFOREXAMPLE,THELENGTHORHEIGHTOFGIVENCHARACTERS,YOUNEEDTOWORKWITHFONTMETRICSTHEFONTMETRICSCLASSDESCRIBESINFORMATIONSPECIFICTOAGIVENFONTTHELEADINGBETWEENLINES,THEHEIGHTANDWIDTHOFEACHCHARACTER,ANDSOONTOWORKWITHTHESESORTSOFVALUES,YOUCREATEAFONTMETRICSOBJECTBASEDONTHECURRENTFONTBYUSINGTHEAPPLETMETHODGETFONTMETRICSFONTFNEWFONT“TIMESROMAN”,FONTBOLD,36FONTMETRICSFMETRICSGETFONTMETRICSFGSETFONTFTABLE92SHOWSSOMEOFTHETHINGSYOUCANFINDOUTUSINGFONTMETRICSALLTHESEMETHODSSHOULDBECALLEDONAFONTMETRICSOBJECTCOLORDRAWINGBLACKLINESANDTESTSONAGRAYBACKGROUNDISALLVERYNICE,BUTBEINGABLETOUSEDIFFERENTCOLORSISMUCHNICERJAVAPROVIDESMETHODSANDBEHAVIORSFORDEALINGWITHCOLORINGENERALTHROUGHTHECOLORCLASS,ANDALSOPROVIDESMETHODSFORSETTINGTHECURRENTFOREGROUNDANDBACKGROUNDCOLORSSOTHATYOUCANDRAWWITHTHECOLORSYOUCREATEDJAVASABSTRACTCOLORMODELUSES24BITCOLOR,WHEREINACOLORISREPRESENTEDASACOMBINATIONOFRED,GREEN,ANDBLUEVALUESEACHCOMPONENTOFTHECOLORCANHAVEANUMBERBETWEEN0AND2550,0,0ISBLACK,255,255,255ISWHITE,ANDJAVACANREPRESENTMILLIONSOFCOLORSBETWEENASWELLJAVASABSTRACTCOLORMODELMAPSONTOTHECOLORMODELOFTHEPLATFORMJAVAISRUNNINGON,WHICHUSUALLYHASONLY256COLORSORFEWERFROMWHICHTOCHOOSEIFAREQUESTEDCOLORINACOLOROBJECTISNOTAVAILABLEFORDISPLAY,THERESULTINGCOLORMAYBEMAPPEDTOANOTHERORDITHERED,DEPENDINGONHOWTHEBROWSERVIEWINGTHECOLORIMPLEMENTEDIT,ANDDEPENDINGONTHEPLATFORMONWHICHYOURERUNNINGINOTHERWORDS,ALTHOUGHJAVAGIVESTHECAPABILITYOFMANAGINGMILLIONSOFCOLORS,VERYFEWMAYACTUALLYBEAVAILABLETOYOUINREALLIFEUSINGCOLOROBJECTSTODRAWANOBJECTINAPARTICULARCOLOR,YOUMUSTCREATEANINSTANCEOFTHECOLORCLASSTOREPRESENTTHATCOLORTHECOLORCLASSDEFINESASETOFSTANDARDCOLOROBJECTS,STOREDINCLASSVARIABLES,THATENABLEYOUQUICKLYTOGETACOLOROBJECTFORSOMEOFTHEMOREPOPULARCOLORSFOREXAMPLE,COLORREDGIVESYOUACOLOROBJECTREPRESENTINGREDRGBVALUESOF255,0,AND0,COLORWHITEGIVESYOUAWHITECOLORRGBVALUESOF255,255,AND255,ANDSOONTABLE93SHOWSTHESTANDARDCOLORSDEFINEDBYVARIABLESINTHECOLORCLASSIFTHECOLORYOUWANTTODRAWINISNOTONEOFTHESTANDARDCOLOROBJECTS,FEARNOTYOUCANCREATEACOLOROBJECTFORANYCOMBINATIONOFRED,GREEN,ANDBLUE,ASLONGASYOUHAVETHEVALUESOFTHECOLORYOUWANTJUSTCREATEANEWCOLOROBJECTCOLORCNEWCOLOR140,140,140THISLINEOFJAVACODECREATESACOLOROBJECTREPRESENTINGADARKGREYYOUCANUSEANYCOMBINATIONOFRED,GREEN,ANDBLUEVALUESTOCONSTRUCTACOLOROBJECTALTERNATIVELY,YOUCANALSOCREATEACOLOROBJECTUSINGTHREEFLOATSFROM00TO10COLORCNEWCOLOR034,10,025TESTINGANDSETTINGTHECURRENTCOLORSTODRAWANOBJECTORTEXTUSINGACOLOROBJECT,YOUHAVETOSETTHECURRENTCOLORTOBETHATCOLOROBJECT,JUSTASYOUHAVETOSETTHECURRENTFONTTOTHEFONTINWHICHYOUWANTTODRAWUSETHESETCOLORMETHODAMETHODFORGRAPHICSOBJECTSTODOTHISGSETCOLORCOLORGREENAFTERSETTINGTHECURRENTCOLOR,ALLDRAWINGOPERATIONSWILLOCCURINTHATCOLORINADDITIONTOSETTINGTHECURRENTCOLORFORTHEGRAPHICSCONTEXT,YOUCANALSOSETTHEBACKGROUNDANDFOREGROUNDCOLORSFORTHEAPPLETITSELFBYUSINGTHESETBACKGROUNDANDSETFOREGROUNDMETHODSBOTHOFTHESEMETHODSAREDEFINEDINTHEJAVAAWTCOMPONENTCLASS,WHICHAPPLETANDTHEREFOREYOURCLASSESAUTOMATICALLYINHERITSTHESETBACKGROUNDMETHODSETSTHEBACKGROUNDCOLOROFTHEAPPLET,WHICHISUSUALLYADARKGREYITTAKESASINGLEARGUMENT,ACOLOROBJECTSETBACKGROUNDCOLORWHITETHESETFOREGROUNDMETHODALSOTAKESASINGLECOLORASANARGUMENT,ANDAFFECTSEVERYTHINGTHATHASBEENDRAWNONTHEAPPLET,REGARDLESSOFTHECOLORINWHICHITHASBEENDRAWNYOUCANUSESETFOREGROUNDTOCHANGETHECOLOROFEVERYTHINGINTHEAPPLETATONCE,RATHERTHANHAVINGTOREDRAWEVERYTHINGSETFOREGROUNDCOLORBLACKINADDITIONTOTHESETCOLOR,SETFOREGROUND,ANDSETBACKGROUNDMETHODS,THEREARECORRESPONDING“GET”METHODSTHATENABLEYOUTORETRIEVETHECURRENTGRAPHICSCOLOR,BACKGROUND,ORFOREGROUNDTHOSEMETHODSAREGETCOLORDEFINEDINGRAPHICSOBJECTS,GETFOREGROUNDDEFINEDINAPPLET,ANDGETBACKGROUNDALSOINAPPLETYOUCANUSETHESEMETHODSTOCHOOSECOLORSBASEDONEXISTINGCOLORSINTHEAPPLETSETFOREGROUNDGGETCOLORASINGLECOLOREXAMPLELISTING94SHOWSTHECODEFORANAPPLETTHATFILLSTHEAPPLETSDRAWINGAREAWITHSQUAREBOXES,EACHOFWHICHHASARANDOMLYCHOSENCOLORINITITSWRITTENSOTHATITCANHANDLEANYSIZEOFAPPLETANDAUTOMATICALLYFILLTHEAREAWITHTHERIGHTNUMBEROFBOXESTHETWOFORLOOPSARETHEHEARTOFTHISEXAMPLETHEFIRSTONEDRAWSTHEROWS,ANDTHESECONDDRAWSTHEINDIVIDUALBOXESWITHINTHEROWWHENABOXISDRAWN,THERANDOMCOLORISCALCULATEDFIRST,ANDTHENTHEBOXISDRAWNABLACKOUTLINEISDRAWNAROUNDEACHBOX,BECAUSESOMEOFTHEMTENDTOBLENDINTOTHEBACKGROUNDOFTHEAPPLETBECAUSETHISPAINTMETHODGENERATESNEWCOLORSEACHTIMETHEAPPLETISPAINTED,YOUCANREGENERATETHECOLORSBYMOVINGTHEWINDOWAROUNDORBYCOVERINGTHEAPPLETSWINDOWWITHANOTHERONEFIGURE922SHOWSTHEFINALAPPLETALTHOUGHGIVENTHATTHISPICTUREISBLACKANDWHITE,YOUCANTGETTHEFULLEFFECTOFTHEMULTICOLOREDSQUARES中文翻译图形,字体和颜色GRAPHICS类在JAVA的图形处理能力帮助下,我们可以绘制线条,形状,字符及图像画面在你的APPLET小程序中。在JAVA中大部分的图形操作,是将方法定义到图形类中在中。你不需要为了在你的APPLET小程序中绘制某些东西而去创建一个GRAPHICSAPPLET小程序的PAINT()方法的参数之一就是GRAPHICS对象。借助该对象,可以描绘你的APPLET小程序并把结果显示在屏幕上。GRAPHICS类是JAVAAWT包的一部分,因此APPLET小程序要进行绘图的话必须在你的JAVA文件的开始使用如下的IMPORT语句IMPORTJAVAAWTGRAPHICSPUBLICCLASSMYCLASSEXTENDEDJAVAAPPLETAPPLET图形坐标系统在屏幕上绘制一个对象,你可以通过调用GRAPHICS类中的一个绘图方法来完成。在APPLET小程序的坐标系统中,所有绘图方法都需要传入参数,它指出了所绘图像的起始点和终点的X,Y坐标。类如,一条线的起始点坐标为(10,10)和终点坐标为(20,20)。在JAVA坐标系统中,原点0,0位于APPLET小程序窗口的左上角。X值的正方向是0,0的右边,而Y坐标将沿着向下的方向增加。所有像素的值都是整数不能使用小数来显示整数之间的某些东西。图91显示了在图形坐标系统上可以绘出的一个简单的正方形。JAVA的坐标系统和许多程序的绘画和布局不同,X和Y在左下方。如果你没有用这种倒置式图形系统来工作过,则可能需要一些练习来熟悉它。绘图和填充GRAPHICS类为原始绘图提供了一套简单的内置式图形,其中包括线,矩形,多边形,椭圆形,弧线等。线DRAWLINE()方法用于绘制两点之间的直线。方法有4个参数起始点的X和Y坐标,以及终点的X和Y坐标,如下所示PUBLICVOIDPAINTGRAPHICSGGDRAWLINE25,25,75,75图92显示了这个代码片段的的结果矩形在JAVA图形中,提供的矩形有三种而不只是一种一般的矩形;有圆角的矩形;用阴影绘制出来的三维立体矩形。对于每个矩形,你都有两个方法可以选择以轮廓形式绘制或者用当前颜色填充。为了绘制普通的矩形,使用用于轮廓的DRAWRECT()方法和用于填充形状的FILLRECT()方法。这些方法都有4个参数矩形的左上角的X和Y坐标;矩形的宽度;矩形的高度。例如下面是用PAINT()方法绘制的两个矩形左边的是轮廓的类型的,右边的是被填充类型的。图93显示了结果带有圆角的矩形需要使用DRAWROUNDRECT()和FILLROUNDRECT()方法来绘制,他们的前4个参数和一般的矩形相似,但在末尾加入了两个参数,这两个参数定义了修正圆角区域的宽度和高度。第一个参数表示角的水平宽度,第二个参数表示角的垂直高度,当角的宽度和高度越大时,区域越大,则圆角越圆。若让这些参数值足够大,甚至可以让矩形看起来类似一个圆或椭圆。图94显示了一些圆角矩形的例子下面是用PAINT()方法绘制出的两个圆角矩形一个是用10像素绘制的轮廓的类型的圆角矩形,另一个是用20像素绘制的被填充类型的圆角矩形。图95显示了矩形的结果PUBLICVOIDPAINTGRAPHICSGGDRAWROUNDRECT20,20,60,60,10,10GFILLROUNDRECT120,20,60,60,20,20最后,是第三种类型的立体矩形,这种矩形并不是真正的三维图形。相反的,它们由于阴影的影响,使得从表面上看来APPLET小程序上的矩形凸起或凹陷。三维立体矩形有前4个参数是X和Y的开始位置,矩形的宽度,矩形的高度。第五个参数是一个布尔类型的值来表明是否为三维效果,当为TRUE时图像凸起,当为FALSE时图像凹陷。对于其他的矩形,也有不同的方法来描绘或填充,比如DRAW3DRECT()方法和FILL3DRECT()方法。下面的代码产生了两个立体矩形的效果,左边的那个是凸起的,右边的是凹陷的。PUBLICVOIDPAINTGRAPHICSGGDRAW3DRECT20,20,60,60,TRUEGDRAW3DRECT120,20,60,60,FALSE图96显示出结果多边形多边形是一种由任意多个边连接组成的形状。要绘制一个多边形,你需要整一套的X、Y坐标和绘制方法,首先,画第一条线,然后画第二条线连接第一条线,再画第三条线连接第二条,像这样的一直画下去。作为一个矩形,你可以使用DRAWPOLYGON()方法和FILLPOLYGON()方法来绘制轮廓的类型的或是被填充类型的多边形。你也可以选择你想要两种方法去指定这些坐标把X、Y坐标作为整数数组对或者是作为POLYGON类的一个实例。用DRAWPOLYGON()和FILLPOLYGON()方法使用第一种方式需要传入三个参数一个保存X坐标的整数组,一个保存Y坐标的整数组和坐标点的总数。当然,数组中有着相同数量的X和Y。下面的例子就是用这种方法来绘制的一个轮廓型的多边形。(图97显示了结果)PUBLICVOIDPAINTGRAPHICSGINTEXES39,94,97,142,53,58,26INTWHYS33,74,36,70,108,80,106INTPTSEXESLENGTHGDRAWPOLYGONEXES,WHYS,PTS第二种方式是作为一个POLYGON对象去使用DRAWPOLYGON()和FILLPOLYGON()方法。如果你打算增加多边形的点或是正在构建一个不确定的多边形,那么POLYGON类将会是非常有用处的。POLYGON类能够让你将多边形视为一个对象,而不用处理个别的数组。创建一个多边形对象,您可以创建一个空的多边形POLYGONPOLYNEWPOLYGON或者像前面所说的,也可以用一组整数数组的点来创建一个多边形INTEXES39,94,97,142,53,58,26INTWHYS33,74,36,70,108,80,106INTPTSEXESLENGTHPOLYGONPOLYNEWPOLYGONEXES,WHYS,PTS一旦有了一个POLYGON对象,你就可以按照需要去把点添加进去POLYADDPOINT20,35那么,绘制多边形,只要使用POLYGON对象作为一个参数传入到DRAWPOLYGON()或FILLPOLYGON()方法中即可。这里有一个以往的例子,采用了这种方法被改写而且,多边形不是轮廓类型的而是被填充绘制的(图98显示了输出)PUBLICVOIDPAINTGRAPHICSGINTEXES39,94,97,142,53,58,26INTWHYS33,74,36,70,108,80,106INTPTSEXESLENGTHPOLYGONPOLYNEWPOLYGONEXES,WHYS,PTSGFILLPOLYGONPOLY复制和清除当你绘制出一些东西后,你可能想移动它们或是完全的清除APPLET小程序。GRAPHICS类提供一些方法可以完成这些事情。COPYAREA()方法用来将窗口的矩形区域复制到窗口的另一个区域。COPYAREA()方法有6个参数要复制的矩形区域的X,Y坐标;那个区域的宽度和高度;以像素为单位,在显示它的副本之前要从区域移开的水平和垂直距离。下面语句将一个100100的像素区域复制向右移动GCOPYAREA0,0,100,100,100,0CLEARRECT()方法有和DRAWRECT()和FILLRECT()方法相同的4个参数,而且它用窗口的当前背景颜色填充矩形区域。如果希望清除整个窗口,可以通过SIZE()方法来确定窗口大小,这将返回

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论