12 - graficos y java2d

Upload: andres-suarez

Post on 11-Jul-2015

109 views

Category:

Documents


0 download

TRANSCRIPT

  • 5/11/2018 12 - Graficos y Java2D

    1/20

    5 0 8 C a d e n os y earacleres C cp il ul o 1 1

    Caracter Caraclar CodlgoodlgoABCDEFGH

    .. -.

    TUVWXyZDig i to s

    KLMNopQRS

    -. - 2.- ..

    4567

    9o

    F ig ur a 1 1. 33 L as l e lr as d el o lfa be to e xp re sa da s e n c 6d lg o M o rs e I nt er na cl on al .D is en e e lm p le m cn te u n a a p l i c ac io n d e c or r ec ck in o rt o gn if i c a e n J av u . S a p ro g r um a d eb e m a nt e ne r u n a rr e -

    g lo d e c ad e na s l la m ud o listaDePalabras. Permita al u s u ur i o i n tr od u c ir e s ta s c a de n u s. [Nola: E n e l c a p f tu l o1 7 p r es e nt a re m o s e l p r oc e snm i en t o de u r ch i v os . U n a v ez q u e t en g a e st u c ap ac id a d, p od ra o bt en e r l ui p u la br as p a-r a e l c o rr e ct or or tognif ico d e u n d ic c io n ar io c or np u ta ri za do a lm a c en a do e n u n a rc h iv o .]

    S u p ro g r a m s d eb e p ed ir a l u s u u rio q u e i n tr o d u zc u u n a p al a b r a . E I p r og ra m a d eb e c nt o n c es b u s ca r e sa p al a b r aen c l u r r eg l o listaDePalabras. S i I n p a la b ra s e e n cu e nt ra e n e l a r re g lo , s u p ro g rn rn a d e bo ra im p ri m ir "Lapa-labra esta escri ta correctamente". S i l a p a la b ra no s c c n c ue n tr a ell e l a rr e g l o , s u p ro g r u m a d eb e im -p r i m i r "Lapalabra no e sta. escr it a cor rectament e" . Despuessu p ro gr am a d eb e tr at a r de l o c a l i z e rotras p a l a b r u s e n lu listaDePalabras q ue puedan s er l a p u l a br a q ue c l u su ar i o t r at a ba de e s cr ib i r. P o r ejem-p lo , p u c de p ro b a r c on t o du s l a s t r a ns po sic io n e s s im p le s p os ib le s d e l e tr as a dy ac en te s p u r n d es cu b r i r q ue l a p u l a br a" pr ed e te rr ni na d o" c o nc u cr da d ir cc tu m e n te c o n u n a p a la b ra e nl istaDePalabras. Desde u e go q u e e sto im p l ic aq ue s u p ro g r a m a c om p ro b a ni t o d u s hL I o tr as t ra n sp o si ci on cs p o si bl es , ta le s c o m o " rp e de te rm i na d o" , " pe rd et cn n i-n u d o ", " p re d e tr er n in a d o ", " p re d e te m r in a d o " y " pr c de te rm n ia do ", C u an do e nc ue n t r e u na n ue va p al a b r a q u e e on -c u er d e c o n u na en la listaDePalabras, i m p r i m a esa p u l a br a e n u n rnensajc ta l c o m o "I.Quiso usteddecir "predeterminado"?",

    I m pl e m en te o tr as p ru eb as , t a le s c om o r ee m pl u zu r c ad a le tr a d o b le c on u n a s ola l e tr a y c u al qu ie r o tr a p ru e baq u e p u e da d es ar ro ll a r p am a um e nt a r e l v a lo r d e s u c or re ct o r o rt o g r af i c o ,

    1 1 . 3 0 (P royecto : utI g e ne r a do r d e c r ll c ig r am a s .) L a m u yo rt a d e la s p er s on as h an r es ue lto c ru ci g ra m as , p er o p ec os h u ni n te n ta do g en er ar u n o . A q u i 10 s ug er im o s c om o u n p ro ye ct o d e r u an ip u l a ci o n d e c ad en as q ue r eq u ie re u na c an ti -d u d c o n si d er ab l e d e s o fi st ic a ci o n y e s f u e r z o .

    H a y m u ch as c ue st i o ne s q u e e l p r og ra m ad or t i e ne q ue r e so lv er p ar a h ac er q ue I u n c io ne in cl u so b as ta e l p ro -g ra m u g e ne ru d or d e c ru c lg ra m a s n u is s im p le , P a r e je m p lo , i ,c 6 m o r ep re se n tn rf a la c u ad rf cu la d e u n c ru c ig ra m a d en -tr o de la c o r np u tu d or a? ~ D e be ria u ti li za r u n a s er ie d e c ad en a s 0 a r re g l o s b i d im e n s i o n u le s ?

    E I p r o g r a m a d o r n e ce s it a u n a f u en te d e p a la b ra s ( es d e ci r, u n d i c c i o n a r io c o m p u t u r i z a d o ) a I u s q u e e l p r og r a-r n a p u e da h ae er r e fe re nc ia d e r n an er a d ir e ct s , ~ D e q u e m a ne ra d eb en a lm a ce na rs e e st a s p al a b r a s p ar a f a ci l i tu r Iu sc o rn p le ja s m a n ip u la ci on e s r eq u er id a s p o r e l p ro g ra m s?

    S i u s te d e s r ea lm c n te u m b i ci o so , q u er ra g e ne r ur l n p o r c io n de " c l a v e s " d el c r u c i g r a m a , en I n q u e s e l rn p ri m enl as b r ev e s p i st as p a ra c a d a p u lu b ra " h o ri zo n ta l" y c ad a p a ln b ra " ve rt ic al ". L a s o l a im p re sio n d e l c r u ci gr am a e n b ln n -c o n o e s u n p ro b l e m a s en ci l l o .

    12Graf icos

    ylava2D C o m p r cn d c r 105 c on te xt os d e g ra fi co s y l os o b je to s d e g ra fic o s. C o m p r cn d c r y r n an i pu l ar l os c o lo r es . C o m p r en d e r y r n an i pu l ar l as f u cn t cs , U sa r r n e to do s d e Graphics p a ra d ib u ja r l fn e as , r ec ta n gu lo s,r ec ts n gu lo s c on e sq u ln as r ed c nd e ad as , r ec ta ng u lo st r i d i m e n s i o n u l e s , o v al o s, a r c os y poltgonos ,

    U t il iz u r m e to do s d e I n c la se Graphics2D d e I n API Java2Dp a r a d i b uj u r l in e a s, r e cu i ng u l os , r c ct a ng u lo s c o n e s q ui n asr e d on d e ud a s , e l ip s es , a r co s y rutas en general.

    E s p e c if i ca r l a s c a r ac t e rf s ti c a s Paint y Stroke de l a s l ig u r a smo s l r a d a s ca n Graphics2D.

    U l la i m ag e n v a le m a s q ue m il p a l a b r a s .P r o v e r b i o c h i n oH ay q ue t r a ta r a la n a t u r a l e z a en t er m in o s d el c il in d t o, d e 1 0. es fe ra , d e l c o no , t od o e n p e rs pe c ti ve .P a u l C e z a n n eN a d a se v u e l v e r e a l s i n o h a s t e q u e se e xp er im e nt a; i nc il i so u np r o v e r b i o n u s er a p ro ve tb io p ar a u si ed , s in o h as ta q u e S ll v id a 1 0/ i a y a i l u s t r a d o .

    K e a t sU l l a i m a g e n me m u e s t r a de u n v is ta za 1 0 q u e tequieie d o c e n a s d ep dg in as d e l in l ibra p a r a explicanI v an S e r g e ye v ic h T u r g en e v

  • 5/11/2018 12 - Graficos y Java2D

    2/20

    5 1 0 G r 6f ic os y J av a 2D

    1 2 . 1 ln t rocucc icnE n c st c c a pi tu lo v e re m os v u ri as d e l as h e rr nm i cn ta s d e J av a p a ra d ib u ja r f ig u ra s b id im c ns io na lc s, c on tr ol ar c o-lorcs y f ue nt cs . U no d e l os a tr ac ti vo s i ni ci al es d e J av a e ra Sll s op on e p ar a g ra fl co s, e l c ua l p cr mi ti a a l os p ro -g ra m ad cr cs d e J av a r ne jo ra r l a a p u ri en c ia v i su a l d e s u s a p p le t s ( s ub p ro g rum a s) y s us a p li ca c io ne s, A h or a, J av ac o nt ie n e m u ch a s m as h er ra rn ie nt as s of is ti ca da s d e d ib uj o c om o p ar te d e l a A P I Javall). C o me n za re m os e st ec ap it ul o c an u na i nt ro du cc io n a r nu ch ns d e l as h er ra mi en ra s d e d ib uj o o ri gi na le s d e J av a. D e sp ue s p re se nt ar e-m os v ur ia s d e l as n ue va s y m as p od e ro sa s h e rr nm i en ta s d e J av a 2D , c om o c l c on tr ol d e l e st il o d e l in e ns u ti li za -d a s p a ra d ib u ja r t igU I 'US y e l c o nt ro l d el r el le no d e l as f ig ur as c on c ol or es y patroncs ,

    E n l a f ig ur a 1 2.1 s e r nu cs tr n u na p or ci on d e l n j er ar qu ia d e c la se s d e J av a q ue i nc lu ye v nr ia s d e l as c la se sd e g ra fi co s b a si e n s y I us c la se s e i nt er fa ce s d e l a A P I J av al q ue c ub ri re mo s elle st e c a pi tu lo . L a c la se Colorc o nt i cn e m e t od o s y c on st un te s p a ra m u ni pu la r l os c ol or es , L a c la se Font c o n ti e ne m e t od o s y c o n sr a n te s p a r am a ne jn r l os t ip o d e l et ru s. L a c la se FontMetrics c on ti en c m et od os p ar a o bt en er i nf or ma ci on s ab re l os t i-p es d e l et ra s, L a c la sc Polygon c on t ie n o m e to do s p a ra c re a r p ol lg on os . L a c la se Graphics c o nt ie n c m e te -d os p a ra d ib u ju r c a de n as , l in e as , r ec ta u gu lo s y d er na s f ig ur us . L a m it nd i nf er io r d e I n f i g u r a m u cs tr a v a ri us c la -s es e i nt er fa ce s d e l a A P I J av a2 D . L a c la se BasicStroke a y ud a a e sp c ci fi ca r l as c a ru c te rf st ic a s d e d ib u ]o d el as l fn c as . L a s c la se s GradientPaint y TexturePaint u yu da n a e s p e c i f l c a r l as c a ra ct er is ti ca s p a ra r e-l le n ar f ig u ra s c on c ol or es ( ) p a tr on e s. L a s c la se s GeneralPath, Arc2D,Ellipse2D, Line2D,Rectan-gle2D y RoundRectangle2Dr ep re se n ta n v a ri as f ig u ra s d e J av a 2D .

    P ar a e rn pe za r a d ib uj ar e n J av a, p ri rn er o d eb em os e nt en de r s u s i s t e m a d e c o o r d en a d a s ( Ii gu ru 1 2 .2 ), e l c u a lc s l in e sq ue ma p ar a i de nt if ic ar a c ad a u no d e l os p os ib le s p un ta s e n l a p n n ta ll u, D e m a ne ra p rc de te rm in ad a, l ue sq ui na s up er io r i zq ui er da d e u n c or np on en te d e l a G U I ( co mo u n a pp le t 0 u n a v e nt an a ) t ie n e l as c oo rd e na d as( D, O) . U n p ar d e c oo rd en ad us e st a c om pu es to p or u na c o or d en u da x (la c o o r de n o d a n o r iu n u a t; y un a co o rd e -nada y (la c o o t tl e n u d u v e r ti c a ls . L a co or d cn u d a x e s l a d is ta nc ia h or iz on ta l q ue s e d es p la za lucia I n der echa ,d e sd e 1 1 1s qu in a s up e ri or i zq u ie rd a . L a c oo rd e na d a y e s l a d is ta n ci a v e rt ic a l q u e s e d c sp lu z a h u ci a a b uj o, d e sd eI n e s qu i na s u p er i or i z q ui e rd u . E I e je x d e sc ri be c u du u n a d e l as c oo rd e na d as h or iz on tu le s, y el ej e y d e sc r ib e c a -d a u n a d e l as c oo rd e nu d as v c rt ic n le s,

    E l t ex to y l as f ig ur as s c m u es uu n e n l a p an ta ll a m e di an te l a c sp ec if ic ac io n d e c oo rd en ud as . L a s u ni da de sd e c oo rd en ad a se m id en e n pixeles. U n p ix el e s l a u ni da d d e r es ol uc ie n m as p cq ue ii a d e I n p a nt nl la d e u n m o-nitor de com pu tudora , .

    L a c oo rd en ad a s up er io r i zq ui er da ( 0,0 ) d e u na v en tn na s e e nc uc nt ra de t r d s d e ln b a rr n d e tit ul o d e la v en -t un a . P a r e st a r az on , l as c oo rd e nu d as d e d ib u jo d e be n a ju st ar se p a ra d ib u ja r d e nt ro d e l os b or de s d e l a v c nt an a . L aclase Container ( un a s up er cl as e d e t od as I us v en tu na s e n J av a) t ie ne e l m et od a getInsets, e ! c u al d e-v ue lv e u n o bj et o Insets (puqueie java, awt) p ara e ste ti n, U n ob je to Insets t ic n e c u at ro m i er nb ro s

    capRu lo 1 2 G r af ic os y J av a 2D 5 1 1

    F i g u r a 1 2. 1 C lo se s e I nt er fa ce s u tl li zo da s e n e st e c ap it ul o. p to ve nl en te s d e l as h er ra ml en ta s d e g ra fl co so ri gi n a le s d e J av a y de 10 A P I J ava2D. (No ta : L a c l as e O bj act ap arec e a qu f porq ue es las up e rc la se d e 10 J er ar qu ia d e c lo se s d e J av a. )

    publi.c: top, bottom, left y right, l os c u a le s r e p re s en t a n eI m im er o d e p fx el es d es de c ad a e xt re me d el a v e nt un a h as ta e l a re a d e d ib uj o p am l a v en tu na .

    T ip d e p o rt ab il ld a d 1 2. 1J J m \ 1 E xi st en d is ti m o: t ip os d e m o ni to re s d e c o mp u ut do ra CO l i d i s l i n l C l s r e so l uc i on e s ( e s t l e c i t ; /0 d e ns id ad d e lo s pix e-t8 les 1 ' ' ' 1 ' ( < 1 ) . 0 '10 p ue de h ac er q ue los g f l i j i c : o s p u r e Z C I II I . I e I' de dinuuc lama/ i us en d ls t in to s // lul/ i tores. a e n c l m is -/ 1 1 0 m o n it o r c o n d i st in t as L'Qllj igul' l lriolles.

    1 2 . 2 C o n t e x t o s d e g r a f i c o s y o b je fo s d e g r a f i c o sUn c o n ie x u, d e g l ' 4 1 i c u s e n J av a p er rn it c d ib uj nr e n 1

  • 5/11/2018 12 - Graficos y Java2D

    3/20

    5 1 2 Graflcos y J o v a 2 D C a p I T u lo 1 2

    +x(OO-~~---~_ ejeX- . (x , y)+y

    Te j eYF ig u r a 1 2 .2 S i st e m a d e coc rdenodos d e J av a. L as u n ld ad es s e mlden e n p i xe le s .d o e l o bje to G ra ph ic s 9 ( el a rg um en to p ar a e l m e to da p ain t d el a pp le t) p ar a a dm in ist ra r e l c on te xt e d e g ra f ic as d e l a pp le t. E n e st e c ap it ul o dcmostraremos c o m o d i bu j ar en l a s a p li c ac i on e s. S i n em b ar g o, todas la s tee-n ic as q ue s e m o s t r a n i n a q ui p u ed e n u ti li za rs e e n a p pl e ts ,

    L a c la se G ra ph ic s e s u na c la se a be tra ct (e s d ec ir , n o p u ed en in sta nc ia rse o bje tos G ra ph ic s) . E s-t o c o ntr ib uy e a l a p o rt ab ili da d d e Ja va . C om o e l d i bu jo s c n ev a a c ab o d e m an er a d is tin ta e n c ad a p la ta fo rm aq ue s op or ta a J av a, n o p u ed e h ab e r u n a a cc io n d e i m pl cm e nt o d e l as h er ra m ie nt as d e d ib uj o e n t od os l os s is te -m a s. P ar e je rn p lo , l as h e rr ar ni en ta s d e g ra fi co s q ue p er m it en a u n a P C c on M i cr os of t W i nd ow s d ib uj ar u n r ec -t dn gu lo , s on d is ti nt as d e l as h e rr am i cn ta s d e g n if ic os q ue p er m it cn a u na e st ac io n d e t ra ba jo L in u x d ib u ja r u nr cc tungu lo ; y a rn ba s s on d is ti nt as d e l as h er ra m ie n ta s d e g ra fi cc q ue p er m it en a u na M a c in to sh d ib u ja r u n r e c -t ti ng ul o. C ua nd o J av a s e i m ple me nta e n c ad a p la ta fo rm a, s e c re a u na s ub cl as e d e G ra ph ic s q ue i rn pl em en tal as b er ra m ie n ta s d e d ib uj o, E st a l mp le rn e nt ac io n e st a o cu lt a p ar a n os ot ro s p or m e di o d e l a c la se G r ap hi cs ,I II c ua l p ro po rc io na l a i nt er fa z q u e n os p er rn it e u ti li za r g ra fi co s d e u n a m a ne ra i nd e pe nd ie n te d e l a p l a ta fo rm a .

    L a c la se C om po ne nt e s II Is up er cl as e p ar a m uc ha s d e l as c la se s e n e l p u qu et e j av a. a m. ( Ha bl ar em ossob re es ta c lase en e l cap itu lo 13 .) E l m ctodo pa in t de C om ponen t tom a un ob je to G rap hic s com o ar-g ur ne nto , E I s is te ma p us a e st e o bj et o a l m et od a p ain t c ua nd o s o r eq uie re u na o pe ra cio n d e p in ta r ( pa in t)p ara u n C om pon en te . E I e n ca be za do d el m etod a p ain t e s:

    , pu b lic void p a in t ( G raph ics I I )L a r efe re nd a 9 ti po G ra ph ic s re cib e u na r ef er en ci a a u na i ns ta nc ia d e l a s ub cl as e e sp ec ff ic a d el si st em a

    q ue G ra ph ic s e xt ie nd e. T al v ez a u st ed I e p ar ez ca c on oc id o e l e n ca be za do d el m et od a a nt er io r; e s e l m is moq u e h e rn os e st ad o u ti li za nd o c n n u es tr as c la se s d e a pp le ts . E n r ea li da d, l a c la se C o mp on en t e s u na s up er cl a-s e i nd ir ec ta d e J Ap pl et , l a s up er cl as e d e t od os l os a pp le ts d e e st e l ib ro . M u ch as h err am ie nt as d e la c 1a seJ Ap pl et s on h ere da da s d e l a c la se C om po ne nt .

    E I m e to do p ain t r ara s v cc es e s ll am ad o d ire cta me nte p ar e l p r og ra ma do r, y a q ue e l d ib uj o d e g r af ic os e sun p ro ce so c ot ur ol ad o p or e ve nt os . C ua nd o s e e je cu ta u n a pp le t, e l c on te ne do r d e a pp le ts l la ma al metodop ain t (d esp ue s d e la s lla ma da s a lo s m etod os in it y s ta r t) . P a ra que pa in t sea llam ad o de nu evo, de-b e o cu rr ir u n evento ( c om o c u b ri r y d e sc ub ri r e l a pp le t c on o tr a v en ta na ). D e m a ne ra s im i la r, c u an do s e m u es -I ra c ua lq ui er o bj et o C om po ne nt, s e h ae c u na ll am ad a a l m eto da p ain t d e e se o bje to .

    S i e l p rog ra ma do r n ec es ita lla ma r a p ain t, se h ac e u na lla rn ad a u l m etod a re pa in t d e C om pon en t.E s te m e to do s ol ic it a u na H a m ad a a l m e t od a u pd at e d e I n c la se C o mp on en t 1 0 m a s p r on t o p o si b le , p a ra b o rr a re l f on da d el o bj et o C o mp on en t, q ui ta nd o c ua lq ui er d ib uj o a n te ri or , y d es pu es u pd at e l la m a d ir ec ta m en tea p ain t. E I rn etod o re pa in t e s lla ma do c an fre cu en cia p ar e l p rog ra ma do r, p ara fo rz ar u na op era cionp ain t. E I m e tod o re pa in t n o d e be re de fin irse , y a q u e r ea li za c ie rt as t ar ea s d ep en d ie n te s d el s is te m a, L o se ncabezad os para repa in t y u pda te son :

    pub lic vo id rep ain t( )pub lic vo id upda te ( G raph ics I I )E I m e to do u pd at e t om a u n o bj et o G ra ph ic s c om o a rg um en to , e l c ua l e s s u mi nis tr ad o u ut om at ic am en te p ore l s is te m a c u an d o se h ac e l a l la m ad a a u pd at e.

    c ap IT u lo 1 2 Graflcos y Java2D 5 1 3

    E n e st e c a pi tu lo n os c on ce n tr ur em o s e n e l m e to do p a in t. E n e l s ig ui en tc c ap it ul o h a bl ar em o s m a s d e ta -I l ad am cn t e s o b re l a n a t u ra l e za c o n t ro l a d a pm c v c n t o s d e l os g n i f i c o s , y s a br e l os m e t o d o s r epa in t y upda te .T am bi en h ab la rc mo s s ob re l a c la sc J Co mp on en t: u na s up erc la se d e m uc ho s c om po ne nt es d e l a G U I e n e lp aq ue te j av ax . s wi ng . L as s ub cl as es d e J Co mp on en t g cn er al me nt e p in tu n d es de s us r ne to do s p ai nt -componen t ,

    1 2 .3 C o n tr o l d e c o lo re sLos co lo r es m e j o r a n In u p a r i e n c i a de un p r o g r a m a y uyudan a transmitir su s i g ni f ic a d o . P a r e je rn p lo , u n s e rm i -f or o t i en e t re s l uc e s d e c ol or es d i st in to s: el r oj o i n di c a a l to , e l a m a ri ll o i n di ca p re c au c io n y e l v e rd e i nd ic a q ues e p u ed e p a sa r,

    L a close Co l o r d e c l a r a lo s r n e t o d o s y la s c o n s t a n t e s p a ra m a n ip u la r l os c o lo re s en un p r o g r u m a d e J a va .L a s c on st un te s d e c ol or es p re v ia m en te d e cl ar ad a s s e s in te ti zu n e n l a f ig ur a 1 2 .3 ,1 y v ar io s m e tc do s y cons -t ru ctc re s se s in te ti za n e n la t ig ur a 1 2.4 . O b se rv e q ue d os d e l os m eto do s d e la fi gu ra 1 2.4 SOi l m c to do s d eG r ap h ic s q u e s on e sp ec ff ic os p ar a l os c ol or es ,~~~~~===-=-~~=-~~=-==------~~~~~=--C o n st a nt a d e c o lo r Co lo r VolorRGB

    dti;o2 O......?'F?Epub ic fina l s ta tic C olor O R l\N G E na ranjapub l i c f ina l s tatic C olo r P IN K rosapub l i c fina l s ta tic C o lo r C YAN cyanpub l i c fina l s ta tic C olo r M A GE NTA m a g e n t apub lic fina l s ta tic C o lo r Y EL LOW a m a r i l l opub l i c fina l s ta tic C olo r B LA CK neg ropub l i c f ina l s tatic C olor W H ITE b l a n c opub l i c final s tatic C olor G RA Y grispub l i c final s tatic Co lo r L lG l ! ' LORAY g r is c l ar epub l i c final s tatic Co lo r DAR K _GR AY g r i s o s c u ropub l i c final s tatic C olor R llD rojopub l i c final s tatic Co lo r G R llE l; ve rdepub l i c fina l s ta tic C olor B LU E azu l

    F i g u r a 12,3 C o ns ta nt es d e C o lo r y s u s v a l or e s R G B .

    255 , 2 00 , 0255 , 1 7 5. 1 7 50 , 255 , 255255 , 0 , 2 55255 , 255 , 00 .0 ,02 5 5 , 2 5 5 , 2 5 51 28 , 1 2 8, 1 2 M1 92 ,1 92 , 1 9264,64,64255 , 0 , 0 .2 5 5 , ( )0 ,0 ,255

    Metoda D e s c r l p c l 6 nCons tructo res y me /a d o s de Co l o rp ub lic C olor ( in t r , in t I I , in t b )

    C r e a u n c o l or b a s a d o e n l o s c om po n e n te s r o j o, v e r d e y a z u l , e x p r es u d o sc om o en t e r o s d e 0 a 2 5 5 .p ub lic C olor( floa t r , f loa t I I, f loa t b )

    C r e a u n c o l or b a s a d o e n l o s c om po n e n te s r o j o, v e r d e y a z u l , e x p r e sa d o s c o rn u v a l o r c s d e p u n t o f l o-t a n te d e 0 . 0 II 1.0 .

    F i g u r a 1 2 . 4 L o s rn st od os d e C o lo r y lo s r ne to do s d e G ra ph ic s re la ci on ad os c on lo s c ol or es .(P ar te 1 d e 2 .)

    1 . En v e r si o n e su n t e r i o r e s deJ ava . l a s cons tun tesde Co lo r t e n i u n nombresq ue cons iaunude le t r asmuyus cu lasy m inus cu ln s .A u n qu e e so s H o m b r e s t o d av f a e s ta n d i s po n i bl e s , s e p r e fi e re el u so d e lo s n o m b r e s q u e s e m u e st ra n en In FIgu r a1 2 . 3 , ya q u ese conformun n l a s convenciones d e nom e nc l a tu r a p a ra la s constantes.

  • 5/11/2018 12 - Graficos y Java2D

    4/20

    5 14 G r6flc os y Java2D

    Metoda Dsscr lpc len

    p ub li c i nt g et Re d( )D ev ue lv e u n v al or e nt re 0 y 2 55 . e l c uu l r cp re se nr a e l c o n tc ni do r oj o.

    p ub li c i nt g et Gr ee n( )D ev ue lv e u n v al or e nt re 0 y 2 5 5. e l c uu l r ep re sc nt a c l c o n te ni do v er de .

    p ub li c i nt g et Bl ue ()D ev ue lv e u n v al or e nt re 0 y 2 55 . e l c uu l r cp re se nt a c l c on te ni do a zu l.

    M e ra t/ os d e Graphics p ar a m a ni pu la r o b je to Colorp ub li c C ol or g et Co lo r( )

    D e vu el ve u n o bj ct o Color q ue r ep re se nt u e l c ol or a ct ua l p ur u e l c on te xt e d e g ni fi co s,public void setColor(Color c )

    E st ab le ce e l c ol or a ct ua l p ar a d ib u ja r c on c l c on te xt e d e g rd fi cu s,Figura 12 .4 L osmetocos d e C o lo r y lo s metodos d e G ra ph ic s r el oc io no do s c on lo s co la re s.

    (P arte 2 d e 2 .)T o d o c ol o r s c c re a a p ar t i r d e u n c om p on cn te ro jo , u no v er d e y o tr o a zu l. E n c on ju nt o , a e st e s c or n po ne n.

    r es s e l e s l l a m a v a lo r es R GB . L os t r e s c or n po ne nt c s R O B p ue de n s er e nt e ro s e n e l r an go d e 0 a 2 55 , a p ue de ns er v al o re s d e p un to f lo ta nr e e n e l r a ng o d e 0 .0 1I 1 .0 . E I p rim e r c om p on cn te R G B e sp ec if ic a I II ca nt i d ad d e r oj o ,e l s e gu nd o , I n c a nt i d ud d e v er de y e l t er c er o , l a c a nt i d ad d e a zu l. E n t r e m a y or s ea e l v a lo r R G B , m a y or s er a I nc an ud ad d e e sc c ol o r e n p ar t i c ul a r. J av a p er r n it e a l p ro gr u m ad or s el e cc io na r d e e n tr e 2 56 X 2 56 X 2 56 (0 a p r o -x lm u du m en te 1 6 .7 m i l l o n e s) c ol o re s. S in e m ba rg o . n o L ad as l a s c om p u t u do ra s s on c ap uc es de m o s tr ar t od o s e s-t ns c ol or cs , S i e st e e s el caso , la co rnpu tado ru m o s t r a n i el c o l o r m as cer cano q u e p u ed a .

    L o s de s c o ns tr uc to re s d e C olo r se m u e s t r u n en la f igura 12.4( u no q ue t o m s t res a r g u m e n t o s in t y o t r oqu e t o m u t re s u r g ur n en t os float , en d o nd e c a da a rg um e nt o c sp cc if lc a I n c un ti d ad d e r oj o , v er de y a z u l) . L o sv alu rc s in t d eh en es tar e n e l r a n g e d e 0 a 255 y lo s v a l or e s f l oa t d c b e n es tar en e l r a ng e d e 0. 0 a L D . E Inu evo o h j c t o Colo r t en d r a l as c a n ti d ad e s de r o jo , a z ul y v e r d e q u e s e e s p e ci f iq u e n , L o s m e to d os g e tRed ,g e tG re en y g e tB l u e d e C o lo r d ev ue lv en v al or es e n t e r o s d e 0 a 255, lo s cu a l e s r e p r e s e n t a n 1(1a n t i d a dde r o jo , v e rd e y a zu l. r es p ec ti va m e nt c, E I m e to d a g e tCo l o r d e G r ap hi cs d ev ue lv e u n o b je to Colo r q u er e p r c s c n t a el c o lo r a c tu a l de d ib u jo , E I m e to d a s etC olo r d e G ra ph ic s c s t a b l c c c el c o l o r a c t u a l d e d i bu j o.

    L a u pl i c ac io n d e l a figurn12.5d em u es tr a v ar ie s m e to do s d e l a f ig ur a 12.4a l d ib u ja r r ec ta n gu lc s r el le n osy c a d c n a s e n v a r i e s c o l o r e s di s t i n t o s . -

    123456 public class HostrarColores extends JFrame {789

    1 011121 314151 6

    1/ Fig. 12.5: MostrarColores.javB/1 Demostraci6n de los colores.import java.awt.;import jav~x.swing.*;

    1 / el constructor es tahl ece cadena debarra detitulo ydimensiones dela 'rentanapublic MostrarColores (i(

    super ( "Usa de los colcres" );setSize ( 400, 130 );setVisible( true };

    Figura 1 2 .5 C a m bi o d e c ol ar es p ar a d ib uJ ar . (P a rt e 1 de 2. )

    Capftulo C ap IT ul o 1 2 Gr6ficos y J ov a2 D 515

    171 81 92021222 32425262728293 03 13 23 33 43 53 63 73 83 94 0414 24 34 4454 6474 84 95 051525 354

    (/ dibujar rectangulos y objetos String en distintos calarespublic void paint ( Graphics 9 )(

    // llamar a 1 metodo paint de La superclasesuper.paint( 9 );/1 establecer nuevo color de dibujo utilizando enteros

    130, 40 };/! estahlecar nuevo color de dibujo utilizando vatores f Ioat

    130, 65 };/1 es tablecer nuevo color de dibujo uti lizando abjetos Color estat icas

    g.dravn'tring( "RGBactual: " _,.g.getColor(}, 130, 90 };I! mostrar valares R G B indi viduale/l

    } // fin del metoda pai nt// ejecut.ar Ia aplicacionpublic s t . a t ic v o i d m a i n ( Strinq arqs [I )(

    MostrarColores aplicacion = nEWMostrarColores (i;aplicac.ion. setDefaul tCloseOperation ( JFrame. EXIT_OtCCLOSE;

    I I fin devl e clase MostrarColores

    F ig ur a 1 2 .5 C a m bi a d e c ol o r es p a r a d lb uj ar . ( Pa rt e 2 d e 2 .)

    C u a n d o l a a p l ic a c io n cmp i e z a a e j e cu t a rs e , s e h a ec u n a l la m u d a al m e t o d a p ain t d e l a c l a s e Mos t ra r -Co l o re s ( l f n e a s 1 8 a 4 5) p a ra p i nt ar la v e n t a n a . E n la l i n e a 2 4 s e u t i l i z a el m e t o d o se tC olo r d e G rap -h : ! .cs p a r a c s t ab l c c er cl c ol o r u ct u u l d e d ib u j o . E I m e to da s etC olo r r ecib e u n o b je to Colo r . L a exp re s i onn e w C a l or ( 2 5 5 , 0 , 0 ) c reu u n n ue vo o b j c to Colo r q ue r e pr e se nt s r a ja ( v al o r 2 55 p ar a r a ja y O p ar a l o sv a l o re su zu l y v e rd e ). E n I n l in e a 2 5 s e u ti li z a e l m e t o d a f i l l Rec t d e Graph i c s p a r a d i b u ju r u n rccu ingulor C ~ l c l l oc o n el c o lo r a ct ua l, E I m e to d a fi llR ec t re c ib e lo s mi smo s p a n ir n et ro s q u e e l r n et o do d rawRec t ( d e s -c n to e n el c a p i t u l o 3) . E n I n l in ea 26 s e u t ll lz a el m e t o d a d raw Str in g d e G raph ic s p a ra d i b u j a r un o b j e -10 String en el c ol o r a ct u al , L a e xp re si on g . g et C o lo r ( ) r ec up er a e l c o lo r a ctu a l d e l o b je to Graph i c s .

  • 5/11/2018 12 - Graficos y Java2D

    5/20

    5 16 G rd ftc as y J a v a 2D C ap f i u l o 1 2

    E I o b je t o Co l o r d ev ue lt o s e c on ca te na c an l a c ad en a " RGB ac t ua l ; " .1 0 q ue p ro du ce u na l la m ad a i mp lf .c it a a ! m e to d a t oS t r i ng d e l u c l as e Co lo r . Ob s er v e q u e l a r e pr e se n ta c io n St r i ng d e l o b je t o Co l o r con.t ie ne c l n or nb rc d e I n c la se y e l p a q uc t e (j a va . a wt. C olo r) , a de rn a s d e l os v al or es r oj o, v e rd e y a z u l .

    E n l as lin ea s 2 9 a 31 y 34 a 36 B e l levan U cabo, n u e v a m e n t e , las m i sr n as t ar cu s . En II I l in e a 2 9 s e u l il iz a elc o ns tr uc to r d e Co l o r c o n t re s a r gum e nt o s f l o a t p ara c re ar c l c olo r v erd e ( 0. O f p ara ro jo , 1 . O f p ara ver .de y O . O f p ar a a zu l) . O b se rv e I n s in ta xi s d e l os v al or es . L a l et ra f a ne xa da a u na l it er a! d e p un to f lo ta nt c i n.d ic a q u e II I l i te r al d e b e t r a t a r s e c om o d e t i p o f l o a t . D e r n a n e r a p r cd e te r m in u da , l a s l l te r a l e s d e p u n to n o ta n .te se t ra ta n c o mo de t ipo d o u b l e .

    E n In lin ea 3 4 se es tab lece eI c ol or a ct ua l d e d ib uj n a u na d e l aH c on st an te s d e Co l o r p r ev i am e n te d e c la ,radas ( Co lo r. B L UE ).O b se rv e q u e n ew n o s e n ec cs it a p ar a c re ur l a c o ns ta nt e, L as c on st an te s d e Co l o r sons t a t i c , pa r 10 qu e se c r ea n c u a nd o l a c la se C o lo r s e c a rg a e n m em oria , e n t i e r npo d e e j e cu cion .

    L a i ns tr uc ci on d e l as l ln ea s 4 2 y 4 3 d em ue st ra e l u so d e l os m e to do s g et R ed , g et Gr ee n y g e t B l u ed e C o lo r en el objcto C o lo r M A G E N T Ar ev i ar n cn te d cc l a rn do .

    O bs er va clo n d e i ng en ie ria d e s of tw ar e 1 2. 1r~ P a ra c a mb ia l' e l co lo r ; d e be c re a r lllllHII'I'O o b je t o C o /. o r (0 uti l i tur UIll! d e l a s C O il s /a m e s d e C o lo r p r e vi a rn e tU e~. d ec la rad us]. L os ob jeto s Co lo r /10 p u ed c n m o di fi ca rs e ( es d e ci t; SO i l inmu/ob les ) .

    E I p a q ue t e ja va x , s w in g p ro po rc io na e l c or np on en te d e I n QU I JColorChooser p ar a p er mi ti r a l osu su ar ie s d e a pl ic ac io ne s s el ec ci on ar c ol or es . E n l a t i gu ra 1 2. 6 e l l ec to r p od ni o pr im ir u n b ot 6n p ar a m o st ra r u ncundro de dialogo JC o l o r C h o o s e r . C ua nd o s el ec ci on e u n c ol or y o pr ir na e l b o t6 n Acep l a r d el c ua dr o d ed ia lo go , e l c ol or d e f on do d e I n v en ta na d e l a a p li ca ci on c am b ia ni d e c ol or .

    1 / I Fig. 12. 6: Mostrarco lcr esz .:i ava2 /1 Seleccionar colQres con JColorChooser.3 import java.awt.*;4 import java. awt.event. ';5 import j a vax . swing. *;67 public class MostrarColores2 extends JFraille8 private JButton cambiarColorBoton;9 prlvato Color color ~ Color.LIGHT_GRAY;10 private Container contenedcr:1112 1/ configurar la GUI13 public MostrarColores2()1 4 {15 super ( "Usa de JColorChooser" );1617 contenedor getContentPane(!;18 contenedor. set.Layout ( new Plowl.eyout U );1920 / I configurar cambiarColorBoton y registrar su manejador de eventos21 camcrcrcororaoton ~ new JBut ton ( "Cambiar color" );22 cambiarco.Ioraoton .addActionListener (2 324 new ActionLiGtener() ( // clase interna an6nima2 526 /1 mostrar JColorChooser cuando el usuario haga clic en el bot6n27 public void acLionPerrormed( ActionEvent evento )28 {2 93031

    F i g ur a 1 2 . 6 E I c ua dra d e d l6 10 ga J C olo rC ho os er . ( Pa rte 1 d e 2 .)

    c a p f f u lo 1 2 G rd f t co s y J a v a 2D 51 7

    3 23 33 435363 73839A OA lA2A3A 4A 54 64 74 849505152535 455565758

    / / establecer color predeterminado, si nose devuelve uncolorif ( color = = null )

    color ~ Color.LIGHT_GRAY;// de contenido

    // fin de la clase interna an6nima) ; 1 / f in de la llamada a addActionListenercontenedor.add( carnbiarColorBoton );setSize( 400, 130 );setVisible( true );

    / / fin del constructor de MostrarColores2/1 ejecutar la aplicaci6npublic static void main ( String args [J ){

    MostrarColores2 aplicacion ~ new MostrarColoreo2 ();aplicacion. setDefaul t.Cl.oaeoparat ion( JFrame. E,UT_ON_CLOSEI;

    // fin de la clase MostrarColores2

    u n c olo r d eu na d e la srnoestros.d e co lo r es

    F i g u r a 1 2 . 6 E I c ua dr a d e d l6 1a go J C o lo rC h oo se r, ( Pa rt e 2 d e 2 .)

  • 5/11/2018 12 - Graficos y Java2D

    6/20

    518 G r6 fic os y J ava2D Cap i tu lo

    Con t ro lesdes l l z ab lesp a r a s e le c c l on o rlo s componen tesrole, verde y azu l

    F igu r a 12,7 L as f iches HSB y RGB de l cucdro d e d l 6 1 0 go J C o l or C h o os e r ,E n l as l fn ea s 2 9 y 3 0 d e a ction Pe rform ed se u tiliz a e l m e to do esu itico showDialog d e . r co r or -

    C ho os er p ar a m ostra r e l c ua dr o d e d id lo go d el s ele cc ion ad or d e c olor es. E st e m et od o d ev ue lv e 0 1 ob je toCo lo r s el ec c io nu d o; a s i el usuurio op r imc concetor 0 c ie rr a e l c ua d ra d e dialogo si n oprimir Acep to r . Es -t e m e t od o t om a t re s a rg u me nt os : u n a referencia a su objeto C om pon en t p ad re , u n objeto Str ing a mos t r a ren l a b a rr a d e t it ul o d e l cuadro de dialogo y e l C o lo r in ic ia l seleccionado p ar a e l cuadro de d ia lo go . E I com-ponente pad r e es u n a r e fe r e n d a a l a v e nt an a d es de l a q ue s e m u e st ra el cuadro de d i ii l og o . E s tc c u a dr o d e d iu -logo estara c en tr ad o e n e l componente p a d re , S i el pad r e es nul.I, en tonces cl c u a dr a d e d i al og o se cen t r a enI n p a nt al la . M ie nt ra s e l c ua dr o d e d ia lo go p ar a s el ec ci on ar c ol or es s e e nc uc nt re e n I a p un ta ll a, e l u su ar io n op od ra i nt er uc tu ar c an e l c om po ne nt e p ud rc , A e st e t ip o d e c ua dr o d e d ii il og o s e l e c o no ce c om o c l iu d r o d e d i d -l og o m o da l (e l cua l s e des c rib i ra e n e l c a pi tu l o 14) . Obs erve la s in ta xis e sp ec ia l M os tra rC ol or es 2. t hi sq ue se u tiliz a e n la lin ea 3 0, Recuerde qu e en la seccion 1 0. 9 v im o s q ue p u ed e t en er acceso a I n r e f e renc iat hi s a l o b je to d e lu c lu sc e xt ern a si c alif ic a a t his c on c l n om bre d e In c lu se e xt er na y u n p u nt o ( ,) .

    U na v cz q u e e l u su ur io s el ec ci on a u n c ol or , e n l as l ln eu s 3 3 y 3 4 s e d c te rm in a s i c olo r es n ull, y d e s erasf color se es tablece e n e l v a lo r predeterminndo C olo r. L IG H T_ G RA Y . E n In l inea 3 7 se utiliza e l m e t od ose tB ackg round pa ra cambiar e l c olo r d e f on da d el p an el d e c o nt e ni d o ( rc p rc s en t ad o p o r con tenedor e nes te p rog rumn) . E I m etn du se tB ac kg rou nd es u no d e los m uc hos rnetodos d e lu clase C om pon en t q uepueden u t i li z a r se en l a m ay or i a d e l os c om p on e nt es d e l a GU I.

    L a s eg un da c ap tu ra d e p un ta lla d e la f ig ur a 1 2.6 m ue st ra c l c u ad ro d e d ia lo go J Co lo rC ho oa er p re de -t e rm i n a d o , q u e p e r rn i t e u I u su u ri o s el ec ci on ur u n c ol or d e u n a v ar ie d ad d e m u es tr a s d e c o lo r es . O b se rv e q u e e n

    cap i lu lo 12 Graf i co5 y J ava2D 5 1 9

    r ca U da d h a y t re s f ic ha s e n l a p ar te s up er io r d el c ua dr o d e d id lo go : M u es jr as , H S 8 y R G 8 . E st as f ic h as r ep re -s en tan t re s d is ti nt as f or rn as d e s el ec c io na r u n c o l or . L a ficha H S8 I e p e rr n it e s e le c c io n ur u n c ol or c on b as e e nma i i z ( h u e ), salllrllcioll isu tura tion; y b r i l lo ( b r i gh tn e ss ). L a f ic hu R G 8 le p er m it e s el ec cl on ar u n c ol or m e di an -te el u sa d e c o nt ro l es d e sl iz a h le s p n rn s e le c c io n ar l o s c om po n cn t e s r o jo , v e rd e y a z ul d el c ol or . L a s fichas H SBy R G B se m u es tr an e n In l ig u ra 1 2 .7 ,

    1 2 .4 C o nt r o l d e t i p o s d e l e tr oE l l e s tn s e cc i on p r es e nt ar e m os l os metodos y constantes par a contro lar lo s tipos de letras . La mayorfa d e l osmetodo s y c o n s t a n t e s d e t ip os d e le tra s on p art e d e l a c la se F on t. A lg un os m eto dos d e l a c la se F on t v In c la -se G raph ics se s in te tiz an en la figu ra l2 .8,

    -Metodo 0 constante. = - = =_ ~~~=m~=*~~~~~~:p~~~~~m~'="~~~~=sR~.am~~~~w=a=~~~=Descr lpc lo nCOI lS/an tes , cons tructo res y metodos d e Font para d i b u ja r f l o li g o n osp u b l i c f i n a l s t a t i c i n t P L A I N

    C o n s t a n t e qu e r e p r e s c n t a un e s ti lo d e t ipo d e l et ra s im p l e.p u b l i c f i n a l s t a t i c i n t B O L D

    C o ns ta n te q ue r ep re se nt u u n e st i l o d e t i p o d e le tr a e n negr ius .p u b l i c f i n a l s t a t i c i n t I T A L I C

    C o n st a ut e q u e r ep re sc nt a u n e st i l o d e t i p o d e l e tr a en c u r s i v a s .p u b l i c F o n t ( S t r i n g n o m b r e , i n t e s t i l o , i n t t a m a n o )

    C re a u n o b je to F o n t c on e l n om b r e d e t ipo d e l et ra , e s ti lo y t a rn a n o e s p c ci fi c a do s ,p ub li c i nt g et St yl e( )

    D ev u e lv e u n va lo r e nt e ro q ue i n d i c a e l c s ti l o a ctu al d e t i p o d e l e tr a .p ub li c i nt g et Si ze ()

    D e vu el v e u n v al o r e nt e ro q ue i nd ica c l t nr na fi o a ct ua l d e l t i po d e t et r a.p ub li c S tr in g g et Na me ()

    D ev u e lv e e l n o m br e a ctu al d el t i p o d e l c tr a , c om o u na cudenup ub li c S tr in g g et Fa mi ly ()

    D e vu elv e e l n o m b r e d e l u f am il i a d el t i p o d e l e tr a, c om o u na c ad cn a,p ub li c b oo le an i sP la in ()

    C o m pr ue ba s i u n t lp o d e l et r a t ic ne e st ilo s im p le . D c vu el ve t r u e s i e l t ip o d e l et ra e s s im p le ,p ub li c b oo le an i SB ol d( )

    C o rn p ru eb a s i u n t ip o d e l et r a t i en e c st ilo e n n e gr ita s, D e vu el ve true s i e l t ip o d e te tr a e st ae n n e g r it a s.

    p ub li c b oo le an i s! ta li c( )C om p ru eb a s i u n t i p o d e le tr a t i c ne e st i l o e n c ur s iv as , D cv uc lv e t r u e si el t ip o d e le tr a e s n ie n c u r si v u s,

    Metados deGraphics param u n ip u la r u b je t os Fontp ub li c F on t g et Fo nt ()

    D e vu c lv e I II r ef cr en c la a un o b j c t o F o n t q u e r ep re se n ta e l t ip o d e le tr a a ct un l,p u b l i c v o i d a e t F o n t ( F o n t f )

    E s t ub l ec e e l t ip o d e l et r a n ct ua l a t n o m hr c de l t ip o d e t et ra , e s ti lo y t ar n ar io c s pe c if ic u d os p a rt a r e f e r e n c iu f a l ob j e t c F o n t ,

    F ig ur a 1 2.8 f Vi et ad os y c on st an te s r el ac ia na d as c an 1 0 cl os e F on t,

  • 5/11/2018 12 - Graficos y Java2D

    7/20

    5 20 G r6 fico s y Jova2D C ap it ul o 1 2

    E I c on st ru ct or d e l a c la se Font l or n a t re s a r gum ent o s: ei l lombre d el t ip o d e l et ra , s u e st il o Y s l I tamar io ,E l n om bre d el tip o d e le tra e s c ua lq uie r tip o d e lc tr a so por ta do p or e l sist em a e n e l q u e sc e ste e jc cu ta nd o e lp r o g r a m u , c om o l os t i p o s de l e t r u e su in da r d e J a v a Monospaced, SansSerif y Serif. El e s t i l o de t ip o d el et rn e s Font. PLAIN (s imple) , Font. ITALIC (curs ivas) 0 Font .BOLD(negritas): c a d a UI IO e s l in c amp ostatio de laclasc Font. Lo s est i los d e l os t ip os d e l et ra pueden u s a r s e combinados ( p o r e j emp l o , Font.ITALIC t Font .BOLD). El t a m a f l o d el t ip o d e l et rn s e m id e e n p u nt as . U n p u n t o e s 1 17 2 d e u na p u l g a d a , EImetoda setFont de Graphics e st ub le cc e l r i po d e l et ru a d ib uj ur e n e se m or nc nt o ( el t ip o d e l et ra ell e l c u uJs e m ost nu ii e l t ex to ) e n b us e a Sl I argurnento Font.

    T ip d e p orta billd ad 1 2.2~1 E tllIlm em d e tip os tie le tr a v aria e no rm em eiu e e ntre s i s temas . Java gal'lln tizI' q ue lo s tip os d e le tr a Serif,~ Monospaced. SansSer .i. f, Dialog y D.i.alogInput e s ta n in s ie m p r d i .l p un i bl e s.e-ee E rr or c om u n d e p ro gr am a cio n 1 2 .1~ E .l'pecijlc lr till t ip o d e t et ra q ue 1i0 es t t l d i spon i l i t e e ll U II s is te m a e s 1111e r r o r 1 0 9 ir a . lava s us ti tu in i e l t ip o d e t et ra~ p rc de te rm ln ad o d e u se s iste ma (g en er atm eiu Sed f).

    E n I n f ig ur a 1 2.9 s e m ue st ra t ex to e n c ua tr o t ip os d e l et ra d is ti nt os , c on c ad u t ip o d e l et ra e n d if er en te t a-m aa o, E l p ro gr am a u ti li za e l c on st ru ct or d e Font p a ra i n ic i al iz a r o b je t os Font ( en l as l in ea s 2 4 , 2 8, 3 2 y 37 )q ue se p usa n a l m e tod a setFont de Graphics p ar a c am bi al ' e l t ip o d e l et ra p ar a d ib uj ar , C ad a l la ma da a lc on st ru c to r d e Font p as a u n n om br e d e t ip o d e l et ra (Serif, Monospaced, 0 SansSerif) c om o u n a c n de -n u, u n e stilo d e t ip o d e lc tra (Font .PLAIN, Font. ITALIC 0 Font. BOLD)y UII t um af io d e t ip o d e l et ra .U na v ez q ue s e i nv oc u e l m et od o setFont de Graphics, t od o e l t ex to q ue s e m u e st re d es pu c d e l u H a ma daa pu re ce ni e n e l n ue vo t ip o d e l e t r n b a st a q ue e s t e se m od ifiq ue . O bse rv e q ue e n In l in ea 3 6 sa c am bia e l c o lord e d lb ujo a roj o, p or 10 q ue l a s ig ui en te c ad en u q ue s e m ue st rn a pu rc ce e n c ol or r oj o.

    123456 public class 'riposDeLetra extends JFrame (7891011121 31 41 51 61 71 819202122232 425262 728

    I I Fig. 1 2 . 9 : TiposDeLetra.javaI I Usa de los ti.pcn de l.et ra.Impcr t java.awt. *;import javax. swi.nq. * i

    I I estableccr batTa de titulo y dimensiones de l a ventanapublic TiposDeLel:ra i)

    super'( "Uso de los tipos de letra" );setSize ( 450, 125 );setVisible ( true );

    I I mostrar cadenas en distintos tipos de letra y colorespublic void paint ( Graphics 9 )( i/l amar al metoda paint de la superclase

    super.paint( 9 );/ I cambi. ar tipo de letra a Serif (Times I , neqr ia, 12pts y dibujar una cadena

    );

    / I cambi.ar t ipo de letra a 140nospaced(Courier) , curs] va, 24pts y d.lbujar una cadenaih:sci l : f(Jt1~l :~@W~F.9ji~!: :"MQ~'pi ; i1i i iE: .~:-CiF;qt lU. j~l 'i I , tQ, , a4!r~j!: i

    FIgura 12 ,9 EImetoda setFont da Graph:l .cs cambia a l t lpoda lat ra para dlbujar .(Porta 1 da 2.)

    capfiulo 12 G rafico s y J av o2D 5 21

    29303132333 4353637383 94 04 14 24344454 64 7484 950

    g.drawString( "Monospaced 24 puntas, curs.iva . ", 2 0 , 7 0 ) ;dibuj ar una cadena);

    I I cambiar ti.pode letra ilSmif: (Times), negrita!cursiva, 18pts y d ibu jar una c adenag.setColor( C ol or .R ED ) ;

    } 1/ fin del met.cdc paintI I ej ecu tar l a ap li caci 6npublic static void main( String arg,,[1 ){

    TiposDeLetra aplicacion = new ' [iposDeLet ra () ;apl icac ion. setDefaul tCloseOperat ion ( JFrame. EXIT_ON_CLOSE);

    I I fin de 1a clase TiposDeLetra

    F igu ra 1 2 . 9 E I rn e to co setFont de Graphics cambia el tlpo de latro pora dlbujar (Porte 2 de 2. )

    O bs er va cio n d e in ge ni er ia d e s of tw ar e 1 2 .200 Parac am b ia r e l t ip o det et ra , d e be c re a r W i ll I/ ev a o bj et o Font. L o s o b je t os Font s ( m i nm u ta b l e s (Font I Il l t ie -~ lie metodos cstnblecer p ar a m o di jk ar l as c ur uc te ri st lc us d el t ip o d e t et ra u ct ua l] .

    M e t r i c a de l o s t ip o s d e l et raE n o ca sl on es , e s n ec es ar io o bt en er i nf or ma ci on u ce rc a d el t ip o d e l et ra a ct ua l p ar a d ib uj ar , c om o e l n om br e, e lestilo y e l t am ar io d cJ t ip o d e l et ra . E n l a f ig ur a 1 2.8 s e s in te ti za n v ar io s m et od os d e Font q u e s e u ti li za n p a rao bt en cr i nf or ma ci on s ab re e l t ip o d e l et ra . E I r ne to do getStyle d ev ue lv e u n v al or e nt er a q ue r cp re se nt a e le st il o a c tu al , E I v al or e nt er o d e vu e lt o p u ed e s er Font. PLAIN, Font . ITALIC , Fon t. BOLD0 I n c o m b i na -c io n d e Font. ITALIC y Font. EOLD.

    E I m e to do getS!ze d ev ue lv e e l ta rn un o d el tip o d e le tr a e n p un to s, E l m etod a getName d ev ue lv e e ln om br c d el t ip o d e l et ra a ct ua l c om o u na c ud en n. E I m e to do getFamily d ev ue lv c e l n or nb re d e I n f am il ia ul a q u e p er te ne ce e l t ip o d e l et ra a ct ua l. E I n o mb re d e l a f am il ia d el t ip o d e l et ra e s e sp ec ff ic o d e l a p l at af or ma .

    Tambien h a y m e to do s d e Font d is po ni bl cs p ar a p ro ba r c l e s ti lo d el t ip o d e l et ra a ct ua l, l os c ua le s s e s in -t et iz an e n l a f ig ur a 1 2 ,8 . L os r ne to do s isPlaiu, i.SBold e isItalic devuelven true s i e l e st il o d el t ip od e l et ru a c tu a l c s s im p le , n e gr it a 0 cu r s iva , r es pec t ivamen te .

    A m cn ud o, e s n ec es ur io c on oc er l nf or mu cl on p re ci sa a ce rc a d e I II r ne tr ic a d e u n t ip o d e l et ra , c om o l a ai -Irlra, el descendente ( lu d is ta nc ia e nt re l a b a se d e I a l in ea y e l p un ta i nf er io r d el t ip n d e l et ra ) y el uuerl ineudo

    , ( In d i fe re nc la e nt re e l d cs ce nd en te d e u na l in en d e t ex ro y e l a sc en de nt e d e l a l in ea d e t ex to q ue e st a a rr ib a: e sd ec ir , c l e sp ac ia rn ie nt o e nt re l fn ea s) , E n l a f ig ur a 1 2.1 0 s e m ue st ru n a lg un os e le me nt os d e l a m e / r i c a de lo s

  • 5/11/2018 12 - Graficos y Java2D

    8/20

    52 2 G ra fi co s y J av a2 D

    I n te r ll n eado

    Ascsndente._IILJ_L-I/Jf _ _....... "--""_"---t-- L inea base,-- L ---' Descendente

    Figura 1 2 . 1 0 M M rlc a d e lo s t lp os d e l etr a.

    Metodo Descripc l6nM e /O d os d e FontMetriasp u bl ic i nt g e tA sc e nt ()

    D ev ue lv e u n v al or q ue re pr es cn ta e l a s ce nd en te d e u n t ip o d e l et m, e n p un ta s.p u bl ic i nt g e tP es c en t( )

    D cv ue lv e u n v alo r q ue re pr es cn ta e l d es ce nd en te d e u n t ip o d e l et ra , e n p u nt as .p ub l ic i nt g e tL ea d in g( )

    D ev ue lv e u n v alo r q ue re pr es en ta e l i ntc rl in eu do d e u n t ip o d e l et ra , e n p un ta s.p u bl ic i nt g et H ei gh t ()

    D ev ue lv e u n v alo r q ue re pr es en ta I n a l tu ra d e u n t ip o d e l et ra , e n p un ta s.M e /O d as d e G r a p h i c s p ar a o bt e n er l a m e / r i c a d e 1 1 1 1 t i po d e t et r ap u b li c F o n tM e t ri c s g e t Fo n t Me t r io s ()

    D e vu el ve e l o bj et o l ' o n t M e t r i o B d el t ip o d e l et ra ( ob je to P o n t ) a c tu a l p a ra d ib u ju r.p ub li c F on tM et ri os g et Fo nt Me tr ic B( F on t f )

    Devuelve el objeto l l ' o n t M e t r i o B ara el ar gumcn to F o n t especi f icado.Figura 1 2 . 1 1 M eto do s d e Fon tMet r i ca y Graph ics p a ra o b te n er 10 Informocl6n m e f r l c c d e u n t lp o

    de le t rc,

    1234 i mp or t j av ax .s wi ng .* ;56789

    1 01 11 21 31415161 71 8

    I I F i g, 1 2. 1 2: M e tr ic a .j av ai I M e t : o d o sd e F o n t M e tr i c s y G r a p h i c s iiti e s p ar a o b t e ne r m et r ic a d e ti p os d e l at r a.i m po r t j a va . a wt . * ;p ub l i c c l es s M e t r i ca e x te n d s J F r a m e (

    I I e s t a b le c e r c a d e n a d e l a b a r r a d e t it u l o y d im en si on es d e l a v en t an ap ub li c M et ri ca ( )(

    s up er ( ' De mo st ra ci 6n d e F on tM et ri cs " ) ;s et S iz e ( 540 , 2 1 0 I;s et Vi si bl e( t ru e ) ;

    II m o s tr a r m e t r i ca d e l t i po d e l et r ap u b l i c v o i d p a i n t ( G r a p h i c s g )Figura 12.12 M atr lc as d e l os ti po s d e le tr o, ( Po rte 1 d e 2 .)

    C ap ilu lo 1 2 Cap~u lo 1 2 G raf ic o s y J a v a2D 52 3

    1 92 02 122232 4252 627282 9303 13 233343 536373 83 94041424344454 64 748

    s up e r. pa i nt ( g ); I I l la ma r a l m et od a p ai nt d e l a s up er cl as eg .s et Po nt ( n ew F on t( " Sa ns Se ri f" , F on t. BO LD , 1 2 ) ) ;

    );g . d J ; a w S t r i n g (g . d r aw S t ri n g (g . d r aw S t ri n g (

    );

    14 );g . s e t F o n t (g .d ra wS tr in g( " Ti po d e L et r a a ct ua l: " + f on t, 1 0,g . d r

  • 5/11/2018 12 - Graficos y Java2D

    9/20

    5 2 4 Graficos y Java2D C ap fiu lo 1 2

    E n I n l i n ea 3 0 s e c re a u n n ue vo t i p o d e l e t r a Serif. c ur si v a, 1 4 p u n to s, E n l a l i n e a 3 1 s e u ti li za u n a s e g u n d ,v e r s i o n d e l m e t o da getFontMetrics d e Graphics, I n c u a l r e e i b e u n a r gu m e n to Font y d e v u e l v e su cortes ,p o n d ic n tc o b je to FontMetrics. E n l as l in e ns 3 4 a 3 7 s e o b ti en e e l a sc en d en te , d e sc en d en te , a lt ur a e i nl er li ne a_d o d e esc t i p o d e l e tr a. O b se rv e q ue l a m e tr ic u e s l i g er ar ne nt e d is ti n ta p ar a c ad a u no d e l o s t i p os d e le iru ,

    1 2 .5 D i bu jo d e l in e os , r ec ta n gu lo s y ovolosE n e st a s ec ci o n p re se nt a re m o s v ar i e s m e t o do s d e Graphics p ar a d lb u ja r l in e as , r ec ta n gu lo s y o v ul es . L o sr n c t o d o s y s u s p a ra m e tr es s e s in te ti zu n en l a f ig u ru 1 2 .1 3 . P a ra c a da m e t od a d e dibujo q u e r e qu i cr e un p a n i m e -tr o anchura y o t r o al tura, s us v al o re s d eb en s er r nim e ro s n o n eg at i v os . D e 1 0 c on tr ar io , n o s c m o st r an i l af i g u r a . E n l a f ig u ra 1 2 .1 4 d e rn o st ra m o s c o m o d ib u ja r u n a v a ri ed a d d e l in e as , r ec n in g ul os , r ec u in g ul os t ri di m en ,s io n al es , r ec ni ng u lo s c an e sq n in u s r cd c nd e ad a s y o v u l e s .

    WU- -: :l ! l! - - A S " = =Metoda D e s c r l p c l o n

    p ub li c v oi d d ra wL in e( i nt xl, in t yl, in t x2, in t y2 )D ib u ja u n a l in e a e n tr e 01 u n t a (xl. yl) y el p u n t o (x2.y2).

    p ub li c v oi d d ra wR ec t( i nt x, in t y, i nt a nc hur a. i nt a lt Ur aD ib u j a u n r e cu in gu lo c on l a anchura y altura c sp ec if ic ad a s. L a c sq u ln n s up e ri or i zq u ie rd ade l r e c td n g u lo t i c ne las c o or de n ad us ( x, y ) .

    p ub li c v oi d f il lR ec t( i nt x, in t y, i nt a nc hu ra , i nt a lt ur a)D lb u ja u n r e cu in gu lo r el le no c on l a anchura y altura e s pe c lf ic u d ns . L a e s qu i na s u p er io ri zq u ie rd a d e l r ec u i ng u lo t i en e Ius c o n r d e n a d u s (x,y) .

    p ub li c v oi d c le ar Re ct ( i nt x, in t y, i nt a nc hu ra , i nt a lt ur a)D lb u j u u n r e ct a ng u l o r el le no c on l u anchura y altura e sp e cl llc ad n s, e n 0 1 c o lo r d e f on d oa ct u al . L a e sq u i n a s up er io r i z qu ie rd a d el r e ct d n g u t o t i e nc l a s c o o rd en ad us ( x ,y).

    p ub li c v oi d d ra wR ou nd Re ct ( i nt x, in t y, i nt a nc hu ra , i nt a lt ur a,i nt a nc hu ra Arc o, in t a lt ur aA rc o )

    D lb u ja u n r e ct a ng u l o c on c sq u in as r e do n d ea du s, e n e l c o lo r a ct u aly c on l u anchura yaltura e sp e ci fic ad u s. L o s v u lo re s d e anchuraArco y alturaArco d e te rm i nu n e l g ra d ed e r ed on d c z d e l a s c sq u i n as ( ve a la f i g u r a 1 2 . 1 5 ) .

    p ub li c v oi d f il lR ou nd Re ct ( i nt x, in t y, i nt a nc hu ra , i nt a lt ur a,i nt a nc hur aA rc o, i nt a lt ur aA rc o )

    D lb u j a u n r e ct a ng u l o r el lc no c on e sq u i n as r e do n d ea da s, e n e lcolor a c t u a l y co n Inanchura yaitura e sp e cl fic ad u s. L o s v al o r es d e anchuraArco y alturaArco d e t e r m i n a n el g r a d ed e r ed on d e z d e l a s e sq u i n u s ( v eu lu f ig u r a 1 2 . 1 5 ) .

    p ub li c v oi d d ra w3 DR ec t( i nt x, in t y, in t a nc hu ra , i nt a lt ur a, bo ol ea n b 1D lb u jn u n r ec u i n gu lo t r id im e ns io na l e n e l c o lo r a ct u al , c an l aanchura y alturae sp e ci fi cu d ns . L a e sq u in u s up e ri or i zq u ie rd a d e l r ec tr in g ulo t i en e Ins c o or de n ad a s ( x, y). E lr cc u in g ul o u p ar ec e c o n r el ie v e c ua n do b es true y s in r e li ev e c u u n do b es false.

    p ub li c v oi d f il 13 DR ec t( i nt x, in t y, int anch ura, int a ltura , boolea n b )D ib u j u u n r e ct a ng u l o t r i d im e ns io n a l r el le no e n e l c o lo r a ct u al , c on l uanchura y alturae sp e ci fic n da s. L a e sq u in a s up e ri or i zq u ie rd u d el r ec ta n gu lo t ie ne l as c o or de n ad a s ( x,y). E lr ec ta ng u lo u p ar ec e c o n r el ie ve c ua n do b es true y s in r el ie v e c u a nd o b es false.

    p ub li c v oi d d ra wO va l( i nt x, in t y, i nt a nc hu ra , i nt a lt ur a)D lb u j u u n o v a lo e n e l c o lo r a ct u al , c on IIInchura y altura e s pc c it lc a d as . L a e s qu in a s u pe r io ri zq u i er da d e l r ec u in g ul o i m ag in ar lo q u e 1 0 r o d ea t ic n e l as c oc rd eu u da s (x, y ). E l o v al o t o ea l o sc u iu ro l a de s d el r ec ui n g u lo im a gi n ar io e n e l c e nt r o d e c ad a u no d elos ludos ( v en i a t ig u ra 1 2 .1 6 ).

    Figura 1 2 . 1 3 M eto do s d e Graphics p ar a d lb uJ ar I [n ea s. r ec ta ng ul os y 6 va lo s. ( Pa rt e 1 d e 2 .)

    caprrulo 12 Graficos y Java2D 5 25

    Metodo D e s c r i p c l o n

    p ub li c v oi d f il lO va l( i nt x, int y, int anchura, int altura )D ib u j u u n o v u lo r cl le no e n e l c o lo r a ct u al , c on l aanchura y altura e s pe c lf ic u d as . L ae sq u in a s up er io r i zq u ie rd a d el I cc ta n gu lu [ nu g in u ri n q u e 1 0 r o d ea t ie n e l as c o or de n ad as (x, y) .E l O V 1 U O t o ea l o s c ua tr o l u d o s d el r e ct u ng u lo im a gi n ur io e n e l c e ntr o t i c c ud a u no d e l o s la de s( v e u I n F I gu r a 1 2 . 1 6 ).

    F ig ur a 1 2. 13 M eto do s d e Graphics pa ra d lbu Ja r l fn e os . re ct angulo s y o vo lo s, (P ar te 2 d e 2 .)

    123456789

    1011121 31415161718192021222 32 42526272 8293 03 13 2333 43 53 63 73 83 940414 2434 4

    / / Fig. 12.14: Lineaskect suvaloa. java/ / lJibuj 0 de l i neas , r e c tanqul os y ovalos .import java.awt . *;i mp or t j av ax . s wi ng . *;public class LineasRectsOvalos extends JFrame {

    // est.ahl ecer la cadena del.abarr a de titulo y dimensiones de la ventanap u b l i c L i n e a sR e c t s O va l o s i )(

    super t "Dibujo de lineas, rectangulos y 6valos" );s e t S l z e ( 4 0 0 , 1 6 5 ) ;sei:Visible( true I;

    / I mostrar var ias Lineas , r ect .anqu. l. on y ovulosp u b l i c void p a i n t i Graphics g I(

    super. p ai nt ( o I; 1/ Llamar al metodo pa int de 1.1 superc lase

    g. setColor ( Color .BLUE I;

    g . se t Co l or l C o lo r .C Y A N 1 ;

    g . s e t C o l o r ( Col or.YELLOW I ;

    g.setColor( Color.I1AGENTA;

    I ! fin del m et od a paint1/ e j e c u t a r La a p l i . c a c l o npublic s t a t i c void main ( String arqs (I I

    Figura 1 2 . 1 4 Dlbujo de I fn eas . re ct a ngu lo s y o vo lo s, ( Po rt e 1 d e 2 .)

  • 5/11/2018 12 - Graficos y Java2D

    10/20

    5 26 G ra fico s y Java2D C ap il ul o 1 2

    454647484950

    L in ea sR ec ts Ov al os a pl ic ac io n ~ n ew L .l ne as R ec ts Ov al os () ;a p li c ac i on . s e tD e fa u lt C lo s eO p er a ti o n ( J F ra m e. E X IT _ ON _ CL O SE ) ;

    II f in d e l a c La se L in eu sR ec t. sO va lo s

    fillllaundRectdrawllaundRectdrawOvalfillOval

    F ig ur a 1 2. 14 D i bu jo d e l in ea s. r ec ta ng ul os y o vo lo s, ( Pa rte 2 d e 2 .)Lo s m e t od o s fillRoundRect ( li ne a 3 0 ) y drawRoundRect ( l in e a 3 1 ) d i b uj u n r e c ni n g ul o s CO i l esqui-

    n a s r e d on d ea d as . S u s p r ir ne rn s d o s a r gu m c nt os e sp e ci fi ca n l as c oo rd e na d as d e l n e s q ui na s up e ri or l zq u ie r da d e lr e c t dn g u l o d e l im i t a d o r (e l a re a e n la q ue s e v a a d ib uja r c l r ec ui ng ulo re don de ad o) . O bse rv e q ue la s c oor de -n ad as d e l a e sq uin a su pe rio r iz qu ie rd a n o s on c l b ord e d el reculngulo r ed on de ud o, s in o l as c oo rd en ud as e nd on de s e e nc on tr ar ia e l b or de s i e l r ec ta ng ul o t uv ie ra e sq ui na s c ua dr ad as . L os a rg um e nt os t er cc ro y c u u rt o e s -p e ci fi c an l a anchura y altura d e l r ec u in g ul o, S u s i ll ti rn os d os u rg u m en to s (anchuraarco y altura-ArCo) d e te rm i na n l os d it im e tr os v e rt ic a l y h or iz o nt al d e l os a rc os u ti li za d os p a ra r ep re sc n ta r l as e sq u in u s.

    E n l a f i gu ra 1 2.1 5 s e m u es tr an l a a nc hu ra y a lt ur a d el a rc o, j un to c on l a a nc hu ra y I n a l tu ra d e u n r ec ta n-g ul o r ed on de ad o. S i s e u ti li zu e l m is rn o v al or p ar a anchuraArco y al turaArco s e p ro du ce u n c ua rto d ec ir cu lo e n c a da e sq u in a . C u a nd o anchura, al tura, anchuraArco y al turaArco t ie n en l os m i sm o s v a -l or es , e l r e s ul ta d o e s u n c ir cu lo . S i l os v a lo re s p a ra anchura y al tura s on l os m i sm o s, y l os v a lo re s d e an-churaArco y al turaArco s on 0 , e l r es ul ta do e s u n c ua dr ud o,

    L o s m e to do s draw3DReot( li ne a 3 4 d e I II f ig ur a 1 2.1 4) y fil13DRect ( li ne a 3 5) t om an l os m is mo sa rg um en to s. L os p ri me ro s d os u rg um e nt os e sp ec if ic un l a e sq ui na s up er io r i zq ui er da d el r ec ta ng ul o. L os s i-g u ie n te s d o s a rg u me n to s e sp e ci fi ca n l a anchura y al tura d e l r e c ta n gu lo , r es pe c ti va m en tc . E l u lt im o a rg u -m e nl o d et er mi na s i e l r ec ta ng ul o e st a CO l i r e l i e v e (true) 0 s i n r e li e ve (false). E l e fe ct o t ri di me ns io na l d edraw3DRecta pa re ce c om o d es b or de s d el r ec ui ng ul o e n e l c ol or o ri gi na l y d os b or de s e n u n c ol or l ig er a-m e nt e m a s o sc ur o. E I e fe ct o t ri di me ns io na l d e fi1l3DRect a pa re ce c om o d os b ord es d el re cta ng ulc e n e lc ol or d e l d ib u jo o ri gi na l y l os o tr os d o s b o rd e s y e l r e ll en o e n u n c ol or l ig er am e nt e m as o sc ur o. L os reculngu-l os c an r el ie ve t ie ne n l os b or de s d e c ol or o ri gi na l d el d ih uj o e n l as p ar te s s up er io r e i zq ui er da d el r ec ta ng ul o.L o s r ec ta n gu lo s s in r el ie v e t ie n en l os b or d es d e c ol or o ri gi na l d e l d ib u jo e n l as p a rt es i nf er io r y d e re c ha d e l r ec -t an g ul o. E I e fe c to t ri di m en si on a l e s d if ic il d e v e l' e n c ie rt os c ol or e s.

    Altura

    F ig ura 1 2.1 5 A nc hu ra y a lt ur a d el a rc o p ar a l os re ct an gu lo s re do nd ea do s.

    Capiju lo 12 Graficos y Java2D 527

    Lo s m e t od o s drawOval y fillOval ( l fn e a s 3 8 y 3 9) t am a n l os m i sm o s c u at ro a rg u m en to s, L o s p ri m e-r os d os a rg um e nt os e sp ec lf ic an l a c oo rd en ad a s up er io r i zq ui er du d el r cc ta ng ul o d el im it ad or q ue c on ti en e e l6 v al o. L o s u l ti rn os d os a rg u me n to s e s pe c if ic a n l a anchura y la al tura d e l r e c ta n g u lo d e l lm i t ad o r, r e sp e c -t iV a lT Ic nt c.E ll l a f ig ur a 1 2. 16 s e m ue st ra u n o va lo d el im it ad o p ar u n r ec ta ng ul o. O b se rv e q ue e l o va lo t oe a e lc e nt ro d e l os c u at ro l ad os d e l r ec td n gu lo d e li rn it ad o r. ( E l r ec ta n gu lo d e li m it ud or n o s e m u e st ra e n l u p a n ta ll a. )

    1 2.6 D ib ujo d e a re osUn a r e a s e d i bu j n c om o u na p or ei6 n d e uu o va lo . L o s dngulos d e l os a re as s e m i de n en grades , Lo s urcos see x t i e n d e n d es de u n dngulo i n i c i a l , e n b a se III m i rn e ro d e g ra d es e sp e ci fi cn d os p o r e l ullgulo d e l a r co . E I a n gu -10 ln i c ia l i nd ic a , e n grades , en d on de e mp ie za e l a re a. E I u ng ul a d el arco e a p e c i f i c a e l r n im e r o t ot al d e g ra d osh us ta l os q ue s e v a u e xt en de r e l u rc o, E n l a l ig ur a 1 2.1 7 s e m u es tr an d os a rc os . E I e on ju nt o I zq ui er do d e e je smuestra it u n a rc o e xt en di en do se d es de c er a h as ta aproximadarnente 1 10 g ra de s. L os a rc os q ue s e e x ti en de n e nd ir ec ci on e n c on tr a d e l as m u ne ci ll as d el r el oj s e m id en e n g ra c ias po s i ti vo s . E I e on ju nt o d er ec ho d e e je s m u es -t ra a u n a rc o e xte nd ie nd ose d es de c era h ust u a pro xim ad am en te -1 10 g ra de s. L os a rc os q ue s e e xt ie nd cn e nd ir ec ci on a f av or d e l as m u nc ci ll as d el r cl oj s e m id en e n g r a d es n e g a ti v e s. O b se rv e l os c u ud ro s p u nt ea d os u l -r ed ed or d e l os a rc os e n l a f ig ur a 1 2. 17 . C u a nd o d ib uj ar no s u n a re o, d eb em os e sp ec if ic ar u n r ec ta ng ul o d el im i-t ad or p ar a u n o va lo . E l a rc o s e e x te nd er a a 10 l ar go d e u na p ar te d el o va lo , L os m e to do s drawArcy fillMede Graphics p ar a d ib uj ar a rc os s e s in te ti zn n e n l a t ig ur a 1 2.1 8.

    E n lu lig ura 1 2.1 9 se d em ue str a e l u so d e lo s m eto da , p ara a re as d e l a f ig ur a 1 2.1 8. E l p ro gr am a d ib ujas ei s a rc o s ( tr es s in r el le n ar y t re s r el lc no s) . P ar a i lu st ra r e l r ec td ng ul o d el im it ad or q ue a yu da a d et er mi na r e nd on de a pa rc ce e l a re a, l os p ri me ro s t re s a rc os s c m u es tr an d en tr o d e u n recuingulo am a ri ll o q u e t ie n e l os r ni s-m a s a r g um en t os x, y, anchura y al tura q u e l os a re a s.1 2.7 D ib ujo d e p olig on os y pOli l ineasLo s polfgo llos s on f lg u ra s c e rr a da s d e v a ri es l ad o s, c o mp u es ta s p o r s eg m en to s d e l in e n r ec ta . L a s poli l ineas sonu n a s e cu e nc ia d e p u nt os c o nc c ta d os , E n l a t ig u ra 1 2 .2 0 d e sc ri bi m os l os m e to d os d e Graphics p a r a d i b uj n r rolf-

    Altura

    Anchura

    F ig ura 1 2. 16 U n 6 va lo d ellm ita do p or u n re cta ng ulo .

    Angu los pos it l vos90 '

    Angu los nega tl vos90'

    t- ---I, ,, ,18 0 0-;": - ,+ '-+-0',l Jt--- - - - - I, ',, ,180 ' 0'

    270 ' 2 70 'F ig ur a 1 2. 17 A ng ul os p os lt lv os y n eg at lv os d e u n a rc o.

  • 5/11/2018 12 - Graficos y Java2D

    11/20

    52 8 G r6 fic os y J av a2D CapITulo 12

    M e l o c i o Descrtpclonp u b li c v o i d d r a wA r c ( i n t x , i n t y , i n t a n ch ur a , i n t a l t u ra , i n t a n g ul o I n i c i al ,i nt a ng ul oA r co

    D i ~ lI jn u n u r co r el u ti v o a l a s c oo rd e na d us (x, y ) d e l a e s qu in a s up er io r i zq ul er da d el r ec ta ng li lod el im it nd or , c on I n a n c h u r a y a l t u r a e sp ec if ic ad as . E I s eg rn en to d el a re a s e d ib uj ae mp ez an do e n a n g u l o I n i c i a l y s o e x ti e nd e h a st a l o sg r ad e s e sp e ci ti ca d os p o ra n g u l o A r c o .

    p u b l i c v o i d f i l lA r c ( i n t x , i n t y , i n t a n c h ur a , i nt a l t u r a , i nt a n g u l o In i c i a li n t a n g u l o A r c o ) ,D ib uj a u n a rc o r el le no ( es d ec ir , l in s ec to r) r el ut iv o a I ns c oc rd en ud as (x, y ) d e l a e sq ui nusuperior i zqu i erda d e l r c c ui n gu lu delimitador, con l a a n c h u r a y a l t u r a especi f l cadas . E Is eg me nt o d el a rc o s e d i bu ja e mp ez an do e n a n g u l o I n i c i a l y s e e x ti e nd c h a sr a lo s gradosc s pe ci fi ca d os p e r a n g u l o A r c o .

    F ig ur a 1 2.1 8 M eto do s d e G ra ph ic s p ar a d ib uJ ar o rc as .

    1 II F ig , 1 2. 19 : DibujarArcos,java2 1 / Dibuj o de arcos ,3 imparl: java.awt. *;4 lmpor t javaxv swi nq.":56 public class DibujarArcof3 ext ends JFt'ame (7a II est ahl ecer cadena de la barra de titulo y dimensiones de la vent ana9 publ ic Dfbuj ar'Arcoa t )10 (11 super I "Dibuj 0 de arcos" I;1213 solSize( 300, 170 I;14 eetVisible( true I;15161 7 II dibujar rectangulos yarcos18 public void paint I Graphics 9 )19 (20 super. paint I 9 I; 1/ llamar al mecodo paint de la s up er c l a se2122 I I empezar en 0 y extenderse hast a 360 grados23 g. setColor I Color. YELLON);24 g.drawRectl 15, 35, 80, 80 );25 g. set.co lcr IColor. BLACKI;262 72 8 I I empezar en 0 y extenderse hasta 110 grados29 g. setCo1or I Color. YELLOW;30 g.dra",Rectl 100, 35, 8Q, 80 I;31 g.setColorl Color .BLACK I;323334 II empezar en 0 y extenderse hasta -270 grados35 g. set .co l or I Colo r ,YELLOW I

    F ig ur a 1 2. 19 A r co s r no sf ro do s c an d ra w Ar c y fillA rc , (P orte 1 d e 2 .)

    C a p r tu l o 1 2 Gr6 f l cos y J av a2D 5 2 9

    3 6 g.drawRectl 185, 35, 80, 80 );37 g.setColorl Color .BLACK I;3 8 , . , , , ,c;C'. , ' , " , _ ' " , , " , < "3 94 04 14 24 34 44 54 64 74849 } I I fin d el metoda paint5 051 / I ej ecutar La aplicac ion52 public static void main I String args [I I5 3 (5 4 Dibuj arArcos apl icac ion ; new Dibuj arArcos(l ;5 5 aplicacion. sEtDefaultCloseOperation I JFnune. EXIT_ON_CLOSE;565 758 II fin de La clase DibujarArcos

    F ig ur a 1 2, 19 A r co s m o st ra do s c an d ra wA r c y fillA rc . (P arte 2 d e 2 .)

    g o n o s y p o l i l f ne as . O b se rv e q ue a lg un os m e to do s r eq u i e re n u n o b j e to Polygon ( p a q u c t c j a v a . awt), L o sc o n s t r u c t o r e s d e l a c la se P oly go n s e d es cr ib en ta mb ie n e n l a f i g u r a 1 2. 20 . E n la f i g u r a 1 2 ,2 1 s e d ib u ja n p o -l lgonos y po l il fn e a s, u t i li zan do lo s me todos y c o ns tr u ct or e s d e l a l ig u ra 1 2 .2 0 .

    E n l a s l i n e a s 2 2 y 2 3 s e c r e a n do s a r r e g l o s i n t y s e u ti li za n p a nt e sp e ci fi ca r lo s p un ta s d el o b j c t oP oly gon H am ada p oligo no l. L a l larn ad a u l constructor d e P o ly go n e n la lln eu 2 4 r ec ib e e l a rr eg lo va-loresX, e l c u al c o nt ie ne l a c o or de n ad a x d e c ad a p un to : e l a r re gl o valoreeY, q u e c o n ti en e It t c o o r d c n a d a y

    M e t o d o DescripcionM e t o d a s de Graphics p a r a d i bl lj a r p a li g o/ w sp ub li c v oi d d ra wP ol yg on ( i nt p un to sX [] , i nt p un to sY [] , i nt p un ta s)

    D i bu j a u n p o ll g on o . L a coordenada x d e e li d a p u nt o s a e s pe ci fi ca e n e l a rr eg l o p u n t o s X y lacoordenada y de c a d ap un to s e e sp ec it ic a e n e l a rr eg lo p u nt o s Y . E l t i lt im o a r g um c n t oe s pe ci fi ca e l m i m e r o de p u n t o s . E s te m e to d o d i bu j a u n p oh go uo c er ra do . S I e l u lt im o p un toe s d is ti nt o d el p ri me ro , e l p o i f g o n oe c ie rr a m ed ia nt e u na l fn eu q ue c on ec tc c lu l ti m o p um ac on e l p ri m er o.

    F ig ur a 1 2.2 0 M eto do s d e G ra ph ic s p ar a d lb uj or p oI Tg on os y r ne to d os d e 10 c l os e Po l y go n ,( Pa rte 1 d e 2 .)

  • 5/11/2018 12 - Graficos y Java2D

    12/20

    5 3 0 Gra t l co s y J ava2D Capf tu lo 1 2

    Melodo Dascr lpc lo np ub l ic v o id d r aw Po l yl in e ( i n t p u nt o sX [l , i n t p un t os Yf l, i n t p u nt o s )

    D l bu ja u n a s ec u en c ia d e l fn e us c o ne c ta d as , L a c o or de n ad a x d e c ad a p u n ta Sf c sp e ci fl ca e n e la r r e g l o p u n t o s l ( y I n c o o r d e n ad a y d e c ad a p un to s e e sp ec if ic a e n e l ar r eg lop u n t o s Y . E lu lt im o a rg um e nt o e sp ec if i c a e l r n im e ro d e p u n t o s . S I e l u lt im o p u n to e s d is ti n to d elp r lr n er o , l a p o l l l r n e u n o s e c le rr a,

    p ub l ic v oi d d r aw Po l yg on ( P o ly go n p )D i b uj a e l p o lt go n o e s pe c it ic a d o,p ub l ic v oi d f i l lP ol yg o n( i n t p u n to sX [] , i n t p u nt os Y[ ], i nt p u nt o s )Dibu ja u n p o lf go n o r el le n o, L a c oo rd e nu d a x d e c ad a p u n to Sf e sp e ci fic a e n e l a rr cg lop u n t o s X y l a c o o r d e n ad a y d e c ad a p un ta Sf e sp e ci fic a e n el a rr eg lo p u n t o s Y . E I u lt im oa rg u rn c nt o e sp c cif ic a e l m i rn c ro d e p u n t o s . E st e m e to d a d ib u j a u n p o l i g o n o c or r ad e.S i e l u lt im o p u n t o fS d is ti nt o d el p ri m er o , e l p o !f go n o s c c ie rr a m e d ia n te u n n l fn ea q u e c o ne ct ee l u l t im o p un ta c on e l p r im e ro .

    p u b li c v oi d f i l lP ol yg o n( P ol yg o n p )D i bu ja e l p o lt go n o r el le no e sp e ci fl cu d o. E I p o lj go n o e s c er ra d o,

    Con s t r u c t o r e s y m a o do s d e P o ly g onp ub li c P ol yg on ( )

    C re a u n n u e vo o b je to p o l lg cn o . E st e o b j e to n o c on ti e ne n in g u n p u n t o .p ub li c P ol yg on ( i nt v al or es X[ ] , i nt v al or es Y [] , i nt n um er oD eP un to sC re a u n n u e vo o b je to p o l lg o n o , E st e o b j e to t i e ne n u m e r o D e P u n t o s l a do s, e n d o n d e c ad a

    p u nt o c o ns is tc d e u n a c o or de n ad a x d e s d e v a l o r e s X , y u n a c o o rd e n ad a y d e s d eval orear.

    p u b l i c v o i d a d d P o i n t ( i n t ~ , i n t y )Agrcga p a r e s d e c o o rd e n a d a s .t y Y a l o b j e t o P o l y g o n .

    F igu r a 1 2 . 2 0 M e to do s d e G ra ph ic s p or a d lb uj ar p oli go ll o& y r ns to do s d e l a c lo se P ol yg on .(P arte 2 d e 2 .)

    I II F i g. 1 2 .2 1 : D i bu j ar P o1 i go n os .j a va2 1/ D ib uj o d e p ol ig on os .3 i m p o r t j a v a . a w t , * ;4 i mp or t j av ax .s wi ng .* ;56 p ub l ic c l as s D ib uj ar P ol ig o no s e xt e nd s J Fr am e (78 II e s t ab 1e ce r c a d en a d e 1 a b a r ra d e t i tu lo Y d i me ns i on es d e 1 a v e nt a na9 p u b l i c D i b u j a r P o l i g o n o s ( )1 0 {

    1 1 s up er ( " D i bu j0 d e p ol ig o no s" ) ;1213 s e tS i ze ( 2 75 , 230 ) ;1 4 s et Vi si bl e( t ru e ) ;

    .15161 7 I I d i bu j ar p o l L qo n cs y p o li I n e a s1 8 p u b l i c v o i d p a i n t ( G r a p h i c s g )19 (2 0 s u p e r . p a i n t ( g ) ; 1/ l l am ar a l m e to da p ai n t d e l a s up er c 1a se

    F i gu r a 1 2 .2 1 P o IT g on o 5m o st ra d os c o n d r aw l ?o ly g on y f illl?olyg on . (P a rte I de 2 .)

    c ap ff ul o 1 2 Graf i co s y Java2D 531

    2 12 223242 52 62 72 8293 03132333 43 5363 7383 94 04 14 243444 54 64 7 } I I f in d el m et od a p ai nt4 849 II e j ec u ta r l a a pl i ca c i6 n5 0 p u b l i c s t a t i c v o i d m a i n ( S t r i n g a r c s Il )51 (5 2 D i b u j a r P o l i g o n o s a p l i c a c i o n = n e w D i b uj a r P ol i g on o s () ;53 a p l Icaci.on. s et D ef au l tC l os e Op e ra ti o n ( J F ra m e. E X X T _ ON _ CL OS E ) ;5 45 55 6 / / f i n d e l a c l a s e D i b u j a r P o l i g o n o s

    R e s ul ta d o d e 1 0 li n ea

    R e s ul ta d o d e 1 0 li n ea 4 5

    R e su lt ad o d e l a l in ea 3 6

    R e s ul ta d o d e 1 0 li n ea 3

    F i gu r a 1 2 .2 1 P o IT go n os m o st ro d os c o n d r aw P o ly g on y f illP olygon . (P arte 2 d e 2 .)

    d e c a d a p u nt o y e l m i m er o 6 ( el m ir ne ro d e p un to s e n e l p ol lg on o) , E n l a l i ne a 2 6 se m ue stra j;lo lig on ol a lp as ar lo c om o a rg u me nt o p ar a e l r n e to dn d ra w Po ly go n d e G r ap h ic s.

    E n la s l f ne as 2 8 y 2 9 s e c re an d os a rr eg lo s i n t y s e u ti li za n p a ra e s pe c if ic a r l os p un ta s d e u n a s e ri e d e Ifn e as c on ec ta da s, E I a rr cg lo v a lo re sX 2 c on ti en e l a c oo rd en ad a x d e c ad a p un ta y - e l a r r eg l o v a l or e s Y2

  • 5/11/2018 12 - Graficos y Java2D

    13/20

    5 32 Gra flc os y J ava2D C ap fiu le 1 2

    c o n t ie n e l a c o o r d e nu d a y d e c ad a p un ta , E n la l in ea 3 1 s e u tili za e l m e to da d ra w Po ly li ne d e G r ap hi csp ar a m o st r ar l a s er ie de l fn c a s c o n e ct ad u s qu e s e e s p e c if i ca n m e d i an t e l o s a r g u m e n t o s v alo re sX 2, v ale _r e sY 2 y 7 ( el m i me ro de pun to s ) ,

    E n la s l fn e us 3 3 y 3 4 H e c re u n d o s a rr eg lo s in t y se u ti liz an p ar a e s p e c i f i c a r lo s p u n t o s de u n po l i g ono ,E I ar r eg lo v a l o re sX3 con t i ene la coo rdenada x d e e ad a p u nto y e l a r r eg l o v a l o re sY3 con t i ene l a CQo l ' de .n u d a y de c a d u p u n to . E n l a l f ue a 3 6 se m u e s t r a un p o l l g o n o al p a s a r al m e t o d o fi llP oly gon d e G r aph ic slo s d o s a r re g l o s ( va lo re aX 3 y v al or es Y3 ) y el mimero d e p u nt os a d i h u ja r ( 4 ),. ,. .. .. ,' E rr or c or nu n d e p ro gr ar na ci on 1 2 .2~ S e IUllzal'a Will < ' x c < ' p d r i u ArraylndexOutOfBoundsException si et m i m e m de PUIlIiJS e s p e c i j 1 c a d o , v ell e/l . f j J J t er c er a rg u me n to d e l m e to d drawPolygon a d el m e to da fillPolygon e s m a yo r que l l l l i m e r o d e e l em e n .to s < ' I I l o s a r r e g lo s de 1 1 l , 1 ' c oo n l e na da s q ue ( ' S pe ci j ic an e l po l igono a m o s tm r .

    E n l a l i n e a 3 8 s e c re u e l o b j e to Po l y g o n I l a r n a d o po l ig ono 2, sin p u n t o s . E n l as lm e as 3 9 a 4 3 s e u t il i.z a c l me t o d o addPoint d e P oly go n p ar a u g r e g a r p a r e s d e c o o r d e n ad a s x y y a l o bj eto P oly go n, E n la l inea-4 5 S0 m u e s t r a e l ob je to P oly go n l la ma do p ol ig on o2 a l p a sa rl o a l m e to d o fi llP oly go n d e G r ap hic s,

    1 2. 8 L a A P I J a va 2DL a n ue va A P I J av a 2 D p r op o rc i on a h e rr a m ie n ta s a v an z a da s p a ra g n i fi c o s b i d im en s i on a l e s, p ar a l os p ro g ra .m a d or es q u e r c qu i er e n r n an i pu l uc i on e s g n if ic u s d c tu l la d a s y comp le j as . L a AP r i n c l u ye carnc te r i s t i cas p a rap ro c es ar a rt c I i n c a l , t cx t o c i rr u ig e n e s e n l os p a q u c t e s ja v a . aw t, j a v a . aw t. im ag e , ja v a . aw t. co lo r ,j a v a . aw t . fon t, ja v a . aw t. g eom , jav a . aw t . p r in t y j av a . aw t . im ag e . ren d e rab le , L a s h e.r ru m ie n ra s d e l u A P I s on I l 1 U Y e x t e n s a s c om o p a ra c u b r i r l a s t o da s e n e s te l i b r o , P a r a v er la s g e n er a li d ad e s a c er c ad e e st as h e rr nm i en ta s, c o ns u lt e I n d c r no s tr ac io n d e I av a2 D ( qu e s e m o s t r o e n e l capi tu lo 3 ) 0 v i s i t e la p d g i n aW eb jav a . su n .com /p rod u c ts/ja v a -m ed ia /2D /in d ex .h tm l, E n e st a s ec ci on v e re m o s la s g e n e -r u l i d u d e s de v u r i u s h e r r am l e n t a s d e l a va 2 D ,

    E I d ib uj o c on lu A P I la va 2 s e lo gra m ed ia nt e e l u so d e u n a i n s t a n c i a de Graphico2D ( p aqu e t cja v a . aw t) , q ue es un a s u hc la se a b st ra ct a d e I n c l as e G ra ph ic s, p or 1 0q ue t i e ne t o da s I us h e r ra m ie nt a s p a-r a g r af ic o s q ue s e d cm o st ru ro n u n t e ri o rm e nt e e n e st e c a p it u lo , D e h e c ho , e l o b j et o en sf u t l l i z n d o p a ra d i b u j a ren t o d o s l o s m e t o d o s p a i n t e s u na i n st a nc la d e un a s u b c l a s e d e G r ap hic s2 D q llc s e p a sa ul m e t o d o p a i n t yB e u t i li z a m ed i a n te cl objeto g de l a s u p e rc l a se G r ap hi cs , P ar a a c ce de r a l as h e rr a m ie n ta s d e G r a p h i c s 2D ,d e b em o s c o nv e rt ir l n r ef e re n c ia Graph i c s q ue s e p as a a p a in t e n u n a r efe re nd a G ra ph ic s2 D , m ed ia nteu n a i n st ru c c io n c omo :

    G ra ph ic s2 D g 2d = ( Graphics2D ) g;L o s s ig u ie n te s d o s e je m p lo s u ti li zu n e s t a t c c n i c a .L in ea s, r ec td ng ul os , r ec ui ng ul os r ed on de ad os , a rc os y e/ ipsesE n e l s ig u i e n t e e je m pl o s e m u es tr an v ar ia s f ig u r as d e l av a2 D d el p a q u e t e j a v a . aw t. g e om , i n c l u ye nd o aLlne2D. Double, Rectangl e2D. Double, RoundRectangle2D. Double, Arc2D. Doubl e yEllipse2D.Double, Ob s e r v e l a s in ta xi s d e c ud a u no d e l os n om b re s d e la s c l a s e s , Ca d a u n a de e s t a s c i a -s e s r e pr e se n ta un a f i g u r a c o n l as d i m e ns io n e s e s p ec if ic a d as c omo v a l o r e s de p u n to f lo r a nt e c o n d o b le p r ec i-s i on , H a y u n a v e rs i on s epar ada de c a d a f i g ur a , r e p re s e n ta d a c o n v a lo r es d e p u n to t lo ta n te c a n p r ec i si on s im p l e( c omo Ellipse2D.Float), E n c a d a c as u, D ou ble e s u na c l a s e sta t ic a n i d a d a de I I I c l a s e qu e s e c s pe -c if ic a a l a i zq u i er d a de l p u n t o ( pa r e j em p lo , E l lip se 2D ) , P ar a u t il iz a r l a c J a s e s t a t i c a n i d u d a , s i rn p l e rn e n -t e d e b e m a s c u li fi c ar s u n o m br e ca n e l n om b re d e l a c la se e xt er na ,

    E n l a f i g u ra 1 2 , 22 s e m u e s t r a c omo d i bu j ar f ig u r as d e l av a2 D y m o d i f i c a r su s c a r a c t c r f s t i c a s de d ib u jo , c o -m o c amb i a l ' c l g r o so r de l in e a , r e ll en a r f ig u r as c o n p a tr o ne s y d i b u ja r l in e as p u nt en d as , E s tu s s o n s 6 1 0 a l g u n a sd e I us much a s h e r n u ni e n ta s q u e p r o p o r c io n n J ava2D,

    E n l a ]f IlCU 2 4 s c c o nv ie rt e l a r ef er en da G r ap hic s r ec ib id a p or p a in t a u na r ef er en cia G r ap hic s2 D ,y s e a si gn a a g 2 dp ll fU p e rm i ti r e l a c ce so a l as c a ra c te ri st ic as d e J av a 2D ,L a p r im e r u f ig u r u q u e d i bu j am o s e s u n o v a lo r e ll en o c o n c o lo r e s q u e c a m b ia n g r nd u a lm e n t e. E n l a s ! f n c a!

    27 y 2 8 s e i nv o ca e l m e to d a setPaint d e G r ap hic s2 D p ar a e s ta ble ce r e l o bj et o Paint q u e d et en n in a e l

    c a pI TU lO 1 2 Gr6ficos y J ava2D 53 3

    I I F ig " 1 2, 22 : E i qu ra s . j av aI I D e m c a t r a c i n d e a 1 gu na s f i gu r as d e J av a2 D ,12

    3II5 i m p or t j a v a ,a w l , im a g e, * ;6 i m p or t j a v a x, s w i ng , * ;789

    101 1121 31 41 5161 71 81 9202 122232 42 52 6272 8293 03 1323 33 43 53 637383 94 0414 24 3444 54 64 74 84 95 05 15 2535 455

    i m p or t j a v a ,a w t ,* ;l m p or t j a v a ,a w e , ge o m ,* ;

    p ub li c c la ss F ig ur as e xt en ds ' ] Fr am eII e st a bl ec er c ad e na d e l a b ar r a d e t it u lo y d im e ns io n es d e l a v e nt an ap u bl ic F i gu r as (I(

    s up er ( " Di bu jo d e f is ru ra s e n 2 D" I;s et Si ze ( 4 25 , 1 60 I;s et Vi si bl e( t ru e ) ;

    II d i b uj ar E ig u ra s c an l a A P I J av a2 Dp u b l i c v o i d p a i n t ( G r a p h i c s 9 ){

    Ii l la ma r a l m e to da p ai n t d e I a s up er c la seu pe r ,p a in t ( 9 I;

    g g , se t Co l or ( C o lo r , Y E LL O W ); /1 d ib uj a r e n a ma ri ll og g, U l lR e c t ( 0, 0, 10 , 10 ); I I d ib uj a r u n r ec ta ng ul o r el le nog g ,s e tC ol o r( C o lo r , B LA C K I; I I d ib uj ar e n n eg rog g , d r a w R e c t ( 1, 1, 6, 6 I; I I d ib uj ar u n r ec ta ng ul og g , s e t C o l o r ( C o l o r , B L U E ); I I d ib uj ar e n a zu lg g , f i l lR e c t ( 1, 1, 1 3 I; I I d ib uj a r u n r ec ta ng ul o r el le nog g , se t C ol o r ( C o l or , R E D I; 1/ d i bu j (l r e n r oj og g , f i l l R ec t ( 4, 4, 3, 3 I; I I d ib uj a r u n r ec ta ng ul o r el le no

    1 2. 22 F lg ur as d e Java2D, (P arte 1 d e 2 ,)

  • 5/11/2018 12 - Graficos y Java2D

    14/20

    5 34 G r6 flc os y Java2D

    56575 85 9606162636 4 f lo at q ui o n es [I " ( 1 0 ) ;6 56 66768697071 } I I fi n d el ml~Lodo paint7273 II ejecutar l a eplicaci6n74 public static void m ain ( String arqs [J75 (76 F ig ura , a pli ca ci on : n ew F ig ur as( );77 aplica cion.setD ef aultCloseO peration{ JF ra me.EXIT_ON_CL OS E I;787980 II f i n de l a c la se F ig ur as

    F ig ura 1 2.2 2 Fig uro s d e J av o2 D. ( Pa rte 2 d e 2 .)c olo r p ar a l a f ig ur a a mostrar. Un o b j et o P a i nt es u n o bj et o d e c u al q ui e r c l as e qu e i rn p le rn e nt e a l a i nt er fa zjav a. aw t. P ain t. E l o bjeto P ain t p ue de s cr a lg o t an s im p le c om o u no d e l o s o bj et os C o lo r p r e v i u m e n -te declnrados , lo s c u al e s s e p r es e nt u ro n en l a s cc c io n 1 2 .3 (I n clase Colo r implementn a P a in t ), 0 el objetoP ain t p uc de s er u na in sta nc ia d e la s c la sc s GradientPaint, SystemColor 0 TexturePaint d e I nAPI J av a 2. E n e st c caso , u t i li z amos u n o b j et o G r a d ie n tP a i nt .

    La clase Gradien tPain t a yu d a a d ib uj ar un a f igura en c ol or es q ue c um bi an g ra du al me nt e ( 10 c u al s ec o no ce c om o degradado ) . E I c o n st r uc t or d e G r a d ie n tJ ? a in t q u e s e u ti li zu u qu f r eq u ie re s ie te a rg umen t os .L o s p r im e r o s d os e sp e ci fi ca n I n c oo rd en a da i ni ci al de l degradadc. E I t e rc e r a rg um e nt o e sp e ci fi ca e l Colo r ini-cial de l degrndado. Lo s a r gum ent o s c u ar t o y quin to e s pe c if ic a n I n c o or d cn a da f in al d e l degradado. EI sextoe sp ec if ic a e l Colo r f inal de l degrudado y e l u l ti mo e sp e ci fi ca s i e l d c gr ad u do c s c f cl ic o ( tr ue ) 0 acfclico(fa lse) . Los d e s c o nj u nt os de coo rdenudus dc te rm inan In direccion de l degradado. C om o I n s e gu n d a c o or d e-n a da ( 35 , 1 0 0 ) se e nc u en tr a h uc iu u ba jo y a l u d e r ec ha d e l a p r im e r a c o or d en a da ( 5 , 30) , e l d e gr ad a do v a haciaabajo y a la derecha c on c ie rto u ng ul o. C o mo e st e d eg ra du do e s c ic Ii co ( tr ue ), e l c o lo r e m pi ez a c on a zu l, s ec o n vi e rt e g r a du a lme n te e n ama r il lo y l ue go r eg re s u g rn d ua lm e n te a a z ul . S i c l d eg r ad a do e s a ci cl ic o , i ll c o l orc a m bi a d el p ri m er c o lo r e sp c ci fi ca d o ( pa r e je m p lo , a z ul ) a l s e gu n do c o lo r ( po r e j em p lo , a m a ri ll o) .

    E n l a l in e a 2 9 s e u ti li za cl me todo fill d e G r a ph ic s2 D p ar a d i bu ja r u n o b je to Shape r e J le n o ( u na i n s-t an cia d e ~ u al qu ie r c la se q ue i mp le m en te a la i nt er fu z S ha pe d el p aq ue te j av a. aw t) . E n e sl e c as o m o st ra -m os u na in sta nc ia d e l u c Jn sc E lliP le 2D . D ou ble . E l c on stm cto r d e E l lip se :lD . D ou ble r ec ib c C U

  • 5/11/2018 12 - Graficos y Java2D

    15/20

    5 36 G ra fic os y Java2D Capftu lo 12

    g o. P ar a c re ar g ui on es d e d if er en te s l on gi tu de s e n u n p at ro n. s im pl em en te d eb e p ro po rc io na r l a l on gi tu d d ec ad u g uion c om o u n c le me nte e n e l a rre glo. E n la lin ea 6 6 se e st ab le ce e l o bje to Paint en Color. YELLOW .E n la s l fn c as 6 7 y 6 8 s e e s ta b le c e el objeto Stroke e n u n n ue vo objeto BasicStroke. L a linea tend r a un aa nc hu ra d e 4 p ix ele s y e x t rem e s r e d on d e a d os (BasicStroke.CAP_ROUND). S i I u s H n ea s s e u ne n entre sf( com o e n u n re cta ng ulo e n la s e sq uin as), IIIu nion d e IIIl in e as s er a r ed on de u da (BasicStroke. JO!~-_ROUND).I u r gum ent o guiones e sp ec if ic a l as l on gi tu de s d e l os g ui on es d e l a l in en . E I u lt im o l ll 'g lu nc nt oi nd ic a e l [ n d ic e i n i ci a l en e l a r re g lo guiones p ar a e l p ri me r g ui on e n el p at ro n. E n la linea 6 9 s e d ib u ja un al inea ca n e l o b j et o Stroke actual.R u in s g e n er a le sA co n ti n u a ci o n p r e se n t a rem o s un a ruta g e ne ra l: u na f ig u ra c or np u es ta d e l ln eu s r ec ta s y c u rv a s c om p le ja s. U n ar ut u g en er al s e r ep rc se nt a c on u n o bj et o d e I n c lu se GeneralPath (paquete java. awt. geom).E n I n I i gu ra1 2.2 3 s e d em ue st ra c om o d ib uj ur u na r ut a g en er al , e n f or ma d e u na e st re ll a d e c in co p un ta s.

    E n I us l in en s 2 4 y 2 5 s e d ec la ra n d es a rr eg lo s int q u e r ep re se nt an l as c oo rd e nu d us x y .v de l os p un to s e nl a e s tr e l lu . En l u l in e a 28sc c r cu e l o b je to GeneralPath l l amudo estrella.

    1 II Fig . 12.23 : F iguras2. java2 II Demostraci6n de una ruta general.3 import jave . ewt . *:4 import java.al;t.geom.*:5 import javax ,swinq , * i67 punl ic class Fi. guras2 ext ende JFrame (89 I le stab lec er c adena de la bar ra de ;ti tu lo , co lo r de fonda y dinens ionea de Ia ventana

    1 0 public F ig ur as 3 ( )1 1 {12 super ( "D'l.buj o de I iquras 3D" );1314 qet Content.Panc () . set.Backqr ound I Color. WHITE ):15 siotSlze ( s n o . ! J O O ) ;16 setVisible( true );171 81 9 I I di.bujar rut a s g en er al es2 0 public void paint ( Graphics 9 )21 {22 super. paint ( g ): / I l l amar al met.ode paint de la superclase2324252 627282930313233 I I crear La est re l L a-vcst.c no la dibuja34 for ( int cuenta ; 1; cuenta < pu nt os X. len gt h; cu en ta ++ )3536

    Fig ura 1 2.2 3 R uto s g en era le s de J av o2 D. (P arte 1 d e 2 .)

    c ap it ul o 1 2 Graficos y Java2D 537

    3 7 $ ] , t \ " e J . ~ : r: ' ;' ; 2 ~ ~ 9 S 6 g ~ ~ b . O ' i '5 l : J : 9 ~ f < i J , '! : r a f~ . i g u # l f38394 041 I I qiar al. rededor del o rIqen y d i.buj ar es tre l Lan en coIores al eat or ios42 for ( int cuent.i ~ I: cuent.a

  • 5/11/2018 12 - Graficos y Java2D

    16/20

    5 38 G ra fic os y J ava2D Cap ITu lo 12

    La ins truccion for d e la s lin en s 42 a 51 d ibujan la es trella 2 0 v ec e s, g in in do la a lr ed e do r d el n u ev opun to de l o ri ge n. E n I n l i ne a 43 se u tili za e l metoda rotate d e G rap hics2D para g ir ar l a s igu ien te figuraa mostrnr , E I a rg um e nt o e sp e ci fl ca e l u n g ul a d e giro en rudianes ( can 360 ' = 211radiunes ) . E n I n l in e a 5 0 s e u t i-I iz u e l m e t od o f il l de G rap hics2D para dibujar un a v er si on r el le na d e I n e s t re l la .

    1 2. 9 ( E je m p lo prccnco o pc io na l) A ce rc a d e lo s o b je to s:D is en o d e in ie rfa ce s c on U M LEn l a s e cc i on 1 1 .9 i n co r po r amo s el manejo de eventos e n n u e st ra s im ul a ci o n, m o d if ic a nd o e l d i ag r am a de colabo.r ac io n q u e se cncargu de la en t r ada y salida d e p a su j er o s a l e l ev a d or . I n cl u im o s t an to e l m a ne jo d e e ve nt os c om ol a h c r en ci a en e s e d i ag rama , E I E le va dor in fo rm a a su Pu erta d e su l l egada . Es ta Puer ta ubre I u P u e r t ade l P iso a l q u e l le gn e l Elevado r , obtenieru lo su m a ne ju d or a t ra ve s de un o b j ct o U b i c a c io n ( cl c un ] s eincluyo en e l e v e nt o de l legada) , y p o te n ci u lm e n te d e s o b je t os Per s ona salen y en t r an ul E le va do r d esp ue sd e q ue ambas Puer tas s e a br en , Ta m bi cn h nb la rn os s ob re l as i n t e r f aces d e e sc uc ha , E ne st a s ec ci on r ep re .s en ta re m os a n ue st ra i nt er fa z d e e sc uc h a c an U M L.RealizacionesUM L e x p re s a l a r c la c io n e n tr e u n a clase y un a in ter laz a t ra vc s d e u nu r cu l i z ac i on . U na clase r e a li r a, ( ] imple.m e n ta , l os comportamientos d e u na in ter fuz , U n d lu g ra m a d e c la se s p ue d e m o st ru r u na r ea li za c io n e n tr e la s cla-se s y l a s i n te r fa c e s. E n l a f ig ur a 1 2. 24 se rnodela l a r en l iz a c ion en t r e I n c l as e Per s ona y l a i n t e rf a z Escu -ch aPu erta . L a relacion e n t re P e r so n a y EscuchaPuer t a p a rc ce s er s im i la r u un a general izacion , co nla e xc ep ci on d e q ue In l lechu qu e e xp re sa l a r el ac io n e s p un te ad a, e n ve z d e s o li d u, Observe qu e el compani.micnto d e e n medio en l a i n t er l a z EscuchaPuer t a c s ui v a cf o , y a q u e l as i nt er fa c es n o conticncn atr ibutos .Po r u l t im o , o b s e rv e l a p n la h ru " In t cr fu z la v a" c o lo c a du en t r e l o s s ig n os (< < ) , ubicudos en el p r imer compani-m ic nt o d e l a i nt er fa z EBcuchaPuer t a . E s ta n o ta c io n d i st in g ue a l u i n t e rt n z E sc uchaPu erta com o u nain ter faz d e l av a e n nues tro s is te m a. L o s e le m en to s q u e s c c o lo c an e n tr e l os s ignos s e c on oc en c om o este-reo tipos on U1v1L .Un e st er eo ti po e s u na e xt en si on d e U M L . E n e s te c a su , el cs tereotipo In ter fnz lavu ex -t ie n de a U M L , d e m a ne ra q u e P O d Ul ll O Sm c de la rl as i nt er fa ce s d e J av a. '

    E n In f ig u ra 1 2 .2 5 s e r nu e st ra la m n ne ra a lt er nu tl va p ar a r ep re se n ta r l a r ea li zn ci on d e l a clasc per s ona yl a l n te r fu z E scu chaP 1.1erta en U ML . L a f ig ur e 1 2. 25 e s e l d ia gr um u c a n e l em e n to s o m i ti d os d e l a f ig ur a12.24. E I c f rc u lo p e q ue r io r e pr e se n ra 1 u i n t cr f uz , y I n l i n ea s t il i da r ep re sc nr a l u r e a li zu ci on . A l o cu lt ar SIIS ope-r ac io ne s, c on de ns um o s l a i nt er fu z, 1 0 c u ul m e jo ra su leg lb i l idud: s in e m b a rg o , a l h uc e r e st o s ac ri fi ca m os II Ii nf or ma cl on a ce rc a d e s us c om p or ta m ie nt os . A I cons tru ir un diagrama c on e le m en to s o m it id os , I n pnict icac on u in e s c ol oc ar l a i nf or m ac io n r el ac io nu d a c an c u a lq u ie r c ompo r tam i en t o en un d i ug r am a s e pa r ad o : p a re j cmp lo , colocamos la i n te r fu z c omp lc t n EscuchaPuer t a e n e l diagramu d e c la se s d e la f ig u ra 1 2 .2 8 .

    F igu r a 12.24 D lo grom a d e c lose s q ue m od elo a 10 c lo se P er so na r eo li za nd o la I nt er fa zEs cuchaPuer t a .

    2 . D e a ct le rd o c on l a e s pe ci ti ca ci ti n d e UM L v er si on 1 .4 , J as i nt er fn ce s n o t i en en a tr ib ut os . S in e mh ar go , I us i nt er fa ce s d e J a v ap u ed e n l en e r u l ri b ut os ( en f or m u d e c a mp o s statio final). Me d ia n te e l P r oc cs o d e l a c o m u n id a d J a va ( JC P , J a v u Com m u n it y P r oc e ss ) , l a c om u n id a d d e J a va e s tu d e su r ro lJ a nd o u n a a si g nl lc io n d e UML a J a vi l q u e i n cl u ye e ll ls i er eo li p o " l n te r-t i ,z J a V I \ ( S ll l ic i t li l l d e e s p ec i fi c a ci 6 n J uv a 2 6 ) . P a r a o b t en e r I m i s i n f ll rm ac i t in s o h re e t JCP , v i s it e d sitio w w w . jcp, e r g .

    c a p I Tu l o 1 2 Granco s y J ava2D 53 9

    Es c u c h aPu e r i a

    F igu r a 12.25 D la gra m a d e closes c on e le m en to s o m lt ld os , q u e modele a 10 c lo se P ers on a r ea ll zo nd ol a I n t er f oz E s c u c h aPu e r ta .EI p ro c es o d e a pl ic ar i ng en ie rf a h u ci a d e la nt e d e U M L a c o d ig o i r np l cm e n ta d o e n J a va se bcn~~dad e l os

    d iagn l l i l a s d e r e a ll z u c io n b ien c o n s t r u i d o s , A I d c c lu r ar c u a lq u ie r c1~s . c , debe , es pcc l l1c . ~ rlu r euhZ l~eJ (}