Sunteți pe pagina 1din 14

Gestionarea pozi]ion\rii

Crearea obiectelor grafice nu realizeaz\ automat [i afi[area lor pe ecran. Mai nti ele trebuie a[ezate pe o suprafa]\, care poate fi o fereastr\ sau suprafa]\ unui applet, [i vor deveni vizibile n momentul n care suprafa]a pe care sunt afi[ate va fi vizibil\. O astfel de suprafa]\ pe care se a[eaz\ obiectele grafice reprezint\ o instan]\ a unei clase ob]inut\ prin e tensia clasei Container. Container

"anel

*indo+

!pplet

%rame

,ialog

!d\ugarea unui obiect grafic pe suprafa]a unui container se face cu instruc]iunea add(). "ozi]ionarea automat\ a controalelor se face de la stnga la dreapta, n limita spa]iului disponibil, trecndu#se la urm\torul rnd cns spa]iul este insuficient. !ceasta nseamn\ c\ redimensionarea ferestrei poate provoca rearan$area controalelor pe suprafa]a de afi[are. Modul de aran$are nu este o caracteristic\ a clasei Container. %iecare obiect de tip Container, sau o e tensie a lui &Applet, Frame, Panel) are asociat un obiect care se ocup\ cu dispunerea componentelor pe suprafa]a de afi[are [i care se nume[te gestionar de pozi]ionare (Layout Manager). 'o]i gestionarii de pozi]ionare implementeaz\ interfa]a LayoutManager. (a instan]ierea unui container se creeaz\ implicit un obiect dintr#o clas\ ce implementeaz\ interfa]a LayoutManager [i care realizeaz\ o dispunere foarte simpl\, conform\ cu descrierea anterioar\ &stngadreapta, sus$os). !ceast\ clas\ se nume[te java.awt.FlowLayout.

"e lng\ FlowLayout, ierar-ia !*' mai pune la dispozi]ie [i al]i gestionari de pozi]ionare. .nul dintre ace[tia este BorderLayout, care [tie s\ dispun\ componentele n / pozi]ii corespunz\toare celor 0 puncte cardinale [i centrului.

Gestionarul FlowLayout !cest gestionar a[eaz\ componentele pe suprafa]a de afi[are n flu liniar, mai precis, componentele sunt ad\ugate una dup\ alta pe linii, n limita spa]iului disponibil. 1n momentul cnd o component\ nu mai ncape pe linia curent\ se trece la urm\toarea linie, de sus n $os. !d\ugarea componentelor se face de la stnga la dreapta pe linie iar alinierea poate fi de trei feluri 2 la stnga la drepata centrate ,istan]a implicit\ ntre componente este de / unit\]i pe vertical\ [i / pe orizontal\. 3ste gestionarul implicit al clasei Applet. .tilizarea cea mai frevent\ o are la amplasarea mai multor butoane ntr#un Panel. ,imeniunile componentelor afi[ate sunt preluate automat de c\tre gestionar prin intermediul metodei getPreferredSi e(), implementat\ de toate componentele standard. 3 emplu2
!"ontainer#.$etLayout(new FlowLayout())% !"ontainer#.add(new Button(&'()))%

Constructori
pu*li" FlowLayout( ) Con$truie$te un ge$tionar "u aliniere pe "entru, $i "u di$tanta +ntre "omponente de , unitati at-t pe ori ontala, "-t $i pe verti"ala pu*li" FlowLayout( int align ) Parametrul align $pe"ifi"a alinierea $i e$te una din varia*ilele . FlowLayout.L/F0, FlowLayout.12340, or FlowLayout.C/50/1. pu*li" FlowLayout( int align, int 6gap, int vgap )

6gap 7 di$tanta pe ori ontala +ntre "omponente vgap 7 di$tanta pe verti"ala +ntre linii

4ariabile
pu*li" $tati" final int L/F0 pu*li" $tati" final int C/50/1 pu*li" $tati" final int 12340

Metode
int getAlignment( ) void $etAlignment( int align ) int get4gap( ) void $et4gap( int 6gap ) int get8gap( ) void $et8gap( int vgap ) void addLayoutComponent(java.lang.String name, java.awt.Component "omp ) void layoutContainer( java.awt.Container target ) java.awt.9imen$ion minimumLayoutSi e( java.awt.Container target ) java.awt.9imen$ion preferredLayoutSi e( java.awt.Container target ) void removeLayoutComponent( java.awt.Component "omp ) java.lang.String toString( )

Gestionarul BorderLayout Gestionarul BorderLayout mparte suprafa]a de afi[are n / regiuni, corespunz\toare celor 0 puncte cardinale [i centrului. O component\ poate fi plasat\ n oricare din aceste regiuni, dimeniunea componentei fiind calculat\ astfel nct s\ ocupe ntreg spa]iul de afi[are oferit de regiunea respectiv\. "entru a ad\uga mai multe obiecte grafice ntr# una din cele / zone, ele trebuie grupate n prealabil ntr#un Panel, care va fi amplasat apoi n regiunea dorit\.

5ort-

*es t

Center

3ast

6out-

![adar la ad\ugarea unei componente pe o suprafa]a gestionat\ de BorderLayout, metoda add() va mai primi pe lng\ numele componentei [i zona n care aceasta va fi amplasat\, acesta fiind apecificat\ prin una din constantele 5ort6, Sout6, :e$t, /a$t,sau Center. 3 emplu2
!"ontainer#.$etLayout(new BorderLayout())% !"ontainer#.add(&Sout6), new Button(&'()))%

Constructori
pu*li" BorderLayout( ) Con$truie$te un ge$tionar fara ni"i o di$atnta +ntre "omponente pu*li" BorderLayout( int 6gap, int vgap ) Con$truie$te un ge$tionar "u di$tantele $pe"ifi"ate +ntre "omponente

4ariabile
pu*li" pu*li" pu*li" pu*li" pu*li" $tati" $tati" $tati" $tati" $tati" final final final final final java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String 5'104 S';04 /AS0 :/S0 C/50/1

Metode
int get4gap( ) void $et4gap( int 6gap ) int get8gap( ) void $et8gap( int vgap ) void addLayoutComponent(java.lang.String name, java.awt.Component "omp ) void addLayoutComponent( java.awt.Component "omp, java.lang.'*je"t "on$traint$ ) float getLayoutAlignment<( java.awt.Container parent ) float getLayoutAlignment=( java.awt.Container parent ) void invalidateLayout( java.awt.Container target ) void layoutContainer( java.awt.Container target ) java.awt.9imen$ion ma>imumLayoutSi e( java.awt.Container target ) java.awt.9imen$ion minimumLayoutSi e( java.awt.Container target ) java.awt.9imen$ion preferredLayoutSi e( java.awt.Container target ) void removeLayoutComponent( java.awt.Component "omp ) java.lang.String toString( )

Gestionarul CardLayout !cest gestionar trateaz\ componentele ad\ugate pe suprafa]a ntr#o manier\ asem\n\toare cu cea a dispunerii

c\r]ilor de $oc nntr#un pac-et. 6uprafa]a de afi[are poate fi asem\nat\ cu pac-etul de c\r]i iar fiecare component\ este o carte din pac-et. (a un moment dat numai o singur\ component\ este vizibil\ &7cea de deasupra8). Clasa dispune de metode prin care s\ poat\ fi afi[at\ o anumit\ component\ din pac-et, sau s\ se poat\ parcurge secven]ial pac-etul, ordinea n care componentele se g\sesc n pac-et fiind intern\ gestionarului !cest gestionar este util pentru implementarea unor cutii de dialog de tip tab, n care pentru o gestionare mai eficient\ a spa]iului, componentele sunt grupate n pac-ete, la un moment dat utilizatorul interac]ionnd cu un singur pac-et, celelate fiind ascunse. !d\ugarea unei componente pe o suprafa]\ de afi[are gestionat\ de CardLayout se face prin metoda add, dar n urm\torul format 2 add(String id?"omponenta, Component "omponenta), unde id?"omponenta este un etic-et\ prin care va fi identificat\ componenta respectiv\ n interiorul pac-etului. Constructori
pu*li" CardLayout( ) Creea a un ge$tionar "u di$tanta +ntre "omponente @ pu*li" CardLayout( int 6gap, int vgap ) Creea a un ge$tionar "u di$tanta $pe"ifi"ata +ntre "omponente

Metode
int get4gap( ) void $et4gap( int 6gap ) int get8gap( ) void $et8gap( int vgap ) void addLayoutComponent(java.lang.String name, java.awt.Component "omp ) void addLayoutComponent( java.awt.Component "omp, java.lang.'*je"t "on$traint$ ) void fir$t( java.awt.Container parent ) %ace vizibila prima component\ a containerului parent float getLayoutAlignment<( java.awt.Container parent ) float getLayoutAlignment=( java.awt.Container parent ) void invalidateLayout( java.awt.Container target ) void la$t( java.awt.Container parent ) %ace vizibila ultima component\ a containerului parent void layoutContainer( java.awt.Container parent ) java.awt.9imen$ion ma>imumLayoutSi e( java.awt.Container target ) java.awt.9imen$ion minimumLayoutSi e( java.awt.Container parent ) void ne>t( java.awt.Container parent )

java.awt.9imen$ion preferredLayoutSi e( java.awt.Container parent ) void previou$( java.awt.Container parent ) void removeLayoutComponent( java.awt.Component "omp ) void $6ow( java.awt.Container parent, java.lang.String name ) 6pecific\ noua component\ care se dore[te a fi la suprafa]\ java.lang.String toString( )

3 emplu2 !fi[eaz\ dou\ butoane *tnA, cu etic-eta 0e>t [i *tnB, cu etic-eta Buton, [i un panel ta* gestionat de CardLayout. (a ta* ad\ugam dou\ componente &una pentru editare te t [i un buton). 6electarea butonului 0e>t face vizibil\ componenta de editare iar selectarea butonului Buton face vizibil butonul.
import java.awt.C% import java.awt.event.C% pu*li" "la$$ pu*li" Button Button 0e$tCardLayout D $tati" void main(String arg$EF) D *tnA 7 new Button(G0e>tG)% *tnB 7 new Button(GButonG)%

Panel *utoane 7 new Panel()% *utoane.$etLayout(new FlowLayout())% *utoane.add( *tnA)% *utoane.add(*tnB)% Panel ta* 7 new Panel()% ta*.$etLayout(new CardLayout())% 0e>tField tf 7 new 0e>tField(G0e>t FieldG)% Button *tn 7 new Button(GButtonG)% ta*.add(G0e>tG, tf)% ta*.add(GButonG, *tn)% Ferea$tra f 7 new Ferea$tra(G0e$t Card LayoutG, ta*)% f.$etLayout(new BorderLayout())% f.add(G5ort6G, *utoane)% f.add(GCenterG, ta*)% f.pa"H()% f.$6ow()% *tnA.addA"tionLi$tener(f)% *tnB.addA"tionLi$tener(f)% I I "la$$ Ferea$tra e>tend$ Frame implement$ :indowLi$tener, A"tionLi$tener D Panel ta*% pu*li" Ferea$tra(String titlu, Panel ta*) D $uper(titlu)%

t6i$.add:indowLi$tener(t6i$)% t6i$.ta* 7 ta*% I JJmetodele interfetei :indowLi$tener pu*li" void window'pened(:indow/vent e) DI pu*li" void windowClo$ing(:indow/vent e) DSy$tem.e>it(@)%I pu*li" void windowClo$ed(:indow/vent e) DI pu*li" void window9ei"onified(:indow/vent e) DI pu*li" void window2"onified(:indow/vent e) DI pu*li" void windowA"tivated(:indow/vent e) DI pu*li" void window9ea"tivated(:indow/vent e) DI pu*li" void a"tionPerformed(A"tion/vent e) D String "are0a* 7 e.getA"tionCommand()% Sy$tem.out.println(e.toString())% CardLayout ge$tionar 7 (CardLayout) ta*.getLayout()% ge$tionar.$6ow(ta*, "are0a*)% I I

Gestionarul 3ridLayout !cest gestionar, mai pu]in utilizat, organizeaz\ containerul ca un tabel cu rnduri [i coloane, componentele fiind plasate n c\su]ele tabelului de la stnga la dreapta ncepnd cu primul rnd. C\su]ele tabelului au dimensiuni egale iar o component\ poate ocupa doar o singur\ c\su]\. 5um\rul de linii [i coloane poate fi specificat n constructorul gestionarului dar poate fi modificat [i ulterior prin metodele $et1ow$ [i $etCol$. ,e asemenea, distan]a ntre componente pe orizontal\ [i distan]a ntre rndurile tabelului pot fi specificate n constructor sau stabilite ulterior. !cest tip de gestionar poate fi util n implementarea unor componente de tip calculator, n care numerele [i opera]iile sunt afi[ate prin intermediul unor butoane dispuse sub forma unei grile. Constructori
pu*li" 3ridLayout( ) Creeaz\ un gestionar 9 9 pu*li" 3ridLayout( int row$, int "ol$ ) Creeaz\ un gestionar cu dimensiunile specificate. ,ac\ una din dimensiuni este :, pe cealalt\ dimeniune pot fi plasate un num\r nelimitat de componente. pu*li" 3ridLayout( int row$, int "ol$, int 6gap, int vgap ) 6e specific\ [i distan]ele ntre componente Obs2 .ltimii doi constructori pot genera o e cep]ie de tipul 1llegal!rgument3 ception dac\ num\rul de linii sau coloane specificat este incorect.

Metode
int getColumn$( ) void $etColumn$( int "ol$ ) int get4gap( ) void $et4gap( int 6gap ) int get1ow$( ) void $et1ow$( int row$ ) int get8gap( ) void $et8gap( int vgap ) void addLayoutComponent(java.lang.String name, java.awt.Component "omp ) void layoutContainer( java.awt.Container parent ) java.awt.9imen$ion minimumLayoutSi e( java.awt.Container parent ) java.awt.9imen$ion preferredLayoutSi e( java.awt.Container parent ) void removeLayoutComponent( java.awt.Component "omp ) java.lang.String toString( )

3 emplu2
import java.awt.C% import java.applet.Applet% pu*li" "la$$ Button3rid e>tend$ Applet D pu*li" void init() D $etLayout(new 3ridLayout(K,B))% add(new Button(GAG))% add(new Button(GBG))% add(new Button(GKG))% add(new Button(GLG))% add(new Button(G,G))% add(new Button(GMG))% I I

Gestionarul de pozi]ionare 3ridBagLayout 3ste cel mai comples [i fle ibil gestionar de pozi]ionare din ;ava. (a fe ca n cazul gestionarului Grid(a<out, suprafa]a de afi[are este considerat\ ca fiind un tabel, ns\, spre deosebire de acesta, num\rul de linii [i de coloane sunt determinate automat, n func]ie de componentele amplasate pe suprafa]a de afi[are. ,e asemenea, n func]ie de componentele gestionate, dimensiunile c\su]elor pot fi diferite, cu singurele restric]ii c\ pe aceea[i linie c\su]ele trebuie s\ aib\ aceea[i n\l]ime, iar pe coloan\ trebuie s\ aib\ aceea[i l\]ime. 6pre deosebire de 3ridLayout o component\ poate ocupa mai multe celule adiacente, c-iar de dimensiuni diferite, zona

ocupat\ fiind referit\ prin 7regiunea de afi[are8 a componentei respective. "entru a specifica modul de afi[are al unei componente, acesteia i poate fi asociat un obiect de tip 3ridBagCon$traint$, n care se specific\ diferite propriet\]i ale componentei referitoare la regiunea sa de afi[are [i la modul n care va fi plasat\ n aceast\ regiune. (eg\tura dintre o component\ [i un obiect 3ridBagCon$traint$ se realizeaz\ prin metode $etCon$traint$ 2
/>. 3ridBagLayout gridBag 7 new 3ridBagLayout()% $etLayout(gridBag)% 3ridBagCon$traint$ " 7 new 3ridBagCon$traint$()% ==se specifica propriet\]ile rederitoare la afi[area componentei ==... gridBag.add(!"omponenta#, ")% add.!"omponenta#

Clasa 3ridBagLayout Constructor


pu*li" 3ridBagLayout( )

4ariabile
prote"ted $tati" final int MA<3129S2N/ prote"ted $tati" final int M25S2N/ prote"ted $tati" final int P1/F/11/9S2N/ prote"ted java.util.4a$6ta*le "ompta*le prote"ted java.awt.3ridBagCon$traint$ defaultCon$traint$ prote"ted java.awt.3ridBagLayout2nfo layout2nfo pu*li" intEF "olumn:idt6$ pu*li" intEF row4eig6t$ pu*li" dou*leEF "olumn:eig6t$ pu*li" dou*leEF row:eig6t$

Metode
intEFEF getLayout9imen$ion$( ) java.awt.Point getLayout'rigin( ) dou*leEFEF getLayout:eig6t$( ) void addLayoutComponent(java.lang.String name, java.awt.Component "omp ) void addLayoutComponent( java.awt.Component "omp, java.lang.'*je"t "on$traint$ ) java.awt.3ridBagCon$traint$ getCon$traint$( java.awt.Component "omp ) float getLayoutAlignment<( java.awt.Container parent ) float getLayoutAlignment=( java.awt.Container parent ) void invalidateLayout( java.awt.Container target ) void layoutContainer( java.awt.Container parent ) java.awt.Point lo"ation( int >, int y )

java.awt.9imen$ion ma>imumLayoutSi e( java.awt.Container target ) java.awt.9imen$ion minimumLayoutSi e( java.awt.Container parent ) java.awt.9imen$ion preferredLayoutSi e( java.awt.Container parent ) void removeLayoutComponent( java.awt.Component "omp ) void $etCon$traint$( java.awt.Component "omp, java.awt.3ridBagCon$traint$ "on$traint$ ) java.lang.String toString( )

Clasa 3ridBagCon$traint$ Constructor


pu*li" 3ridBagCon$traint$( )

4ariabile
pu*li" $tati" final int 1/LA028/ Spe"ify t6at t6i$ "omponent i$ t6e ne>tOtoOla$t "omponent in it$ "olumn or row (gridwidt6, grid6eig6t), or t6at t6i$ "omponent *e pla"ed ne>t to t6e previou$ly added "omponent (grid>, gridy). pu*li" $tati" final int 1/MA259/1 Spe"ify t6at t6i$ "omponent i$ t6e la$t "omponent in it$ "olumn or row. pu*li" $tati" final int 5'5/ 9o not re$i e t6e "omponent. pu*li" $tati" final int B'04 1e$i e t6e "omponent *ot6 6ori ontally and verti"ally. pu*li" $tati" final int 4'12N'50AL 1e$i e t6e "omponent 6ori ontally *ut not verti"ally. pu*li" $tati" final int 8/102CAL 1e$i e t6e "omponent verti"ally *ut not 6ori ontally. pu*li" $tati" final int C/50/1 Put t6e "omponent in t6e "enter of it$ di$play area. pu*li" $tati" final int 5'104 Put t6e "omponent at t6e top of it$ di$play area, "entered 6ori ontally. pu*li" $tati" final int 5'104/AS0 Put t6e "omponent at t6e topOrig6t "orner of it$ di$play area. pu*li" $tati" final int /AS0 Put t6e "omponent on t6e left $ide of it$ di$play area, "entered verti"ally. pu*li" $tati" final int S';04/AS0 Put t6e "omponent at t6e *ottomOrig6t "orner of it$ di$play area. pu*li" $tati" final int S';04 Put t6e "omponent at t6e *ottom of it$ di$play area, "entered 6ori ontally. pu*li" $tati" final int S';04:/S0 Put t6e "omponent at t6e *ottomOleft "orner of it$ di$play area. pu*li" $tati" final int :/S0 Put t6e "omponent on t6e left $ide of it$ di$play area, "entered verti"ally. pu*li" $tati" final int 5'104:/S0

Put t6e "omponent at t6e topOleft "orner of it$ di$play area. public int gridx Spe"ifie$ t6e "ell at t6e left of t6e "omponentP$ di$play area, w6ere t6e leftmo$t "ell 6a$ grid> 7 @. 06e value 1/LA028/ $pe"ifie$ t6at t6e "omponent *e pla"ed ju$t to t6e rig6t of t6e "omponent t6at wa$ added to t6e "ontainer ju$t *efore t6i$ "omponent wa$ added. 06e default value i$ 1/LA028/. public int gridy Spe"ifie$ t6e "ell at t6e top of t6e "omponentP$ di$play area, w6ere t6e topmo$t "ell 6a$ gridy 7 @. 06e value 1/LA028/ $pe"ifie$ t6at t6e "omponent *e pla"ed ju$t *elow t6e "omponent t6at wa$ added to t6e "ontainer ju$t *efore t6i$ "omponent wa$ added. 06e default value i$ 1/LA028/. public int gridwidth Spe"ifie$ t6e num*er of "ell$ in a row for t6e "omponentP$ di$play area. ;$e 1/MA259/1 to $pe"ify t6at t6e "omponent *e t6e la$t one in it$ row. ;$e 1/LA028/ to $pe"ify t6at t6e "omponent *e t6e ne>tOtoOla$t one in it$ row. 06e default value i$ A. public int gridheight Spe"ifie$ t6e num*er of "ell$ in a "olumn for t6e "omponentP$ di$play area. ;$e 1/MA259/1 to $pe"ify t6at t6e "omponent *e t6e la$t one in it$ "olumn. ;$e 1/LA028/ to $pe"ify t6at t6e "omponent *e t6e ne>tOtoOla$t one in it$ "olumn. 06e default value i$ A. public double weightx Spe"ifie$ 6ow to di$tri*ute e>tra 6ori ontal $pa"e. 06e grid *ag layout manager "al"ulate$ t6e weig6t of a "olumn to *e t6e ma>imum weig6ty of all t6e "omponent$ in a row. 2f t6e re$ulting layout i$ $maller 6ori ontally t6an t6e area it need$ to fill, t6e e>tra $pa"e i$ di$tri*uted to ea"6 "olumn in proportion to it$ weig6t. A "olumn t6at 6a$ a weig6t ero re"eive$ no e>tra $pa"e. 2f all t6e weig6t$ are ero, all t6e e>tra $pa"e appear$ *etween t6e grid$ of t6e "ell and t6e left and rig6t edge$. 06e default value of t6i$ field i$ @. public double weighty Spe"ifie$ 6ow to di$tri*ute e>tra verti"al $pa"e. 06e grid *ag layout manager "al"ulate$ t6e weig6t of a row to *e t6e ma>imum weig6t> of all t6e "omponent$ in a row. 2f t6e re$ulting layout i$ $maller verti"ally t6an t6e area it need$ to fill, t6e e>tra $pa"e i$ di$tri*uted to ea"6 row in proportion to it$ weig6t. A row t6at 6a$ a weig6t of ero re"eive$ no e>tra $pa"e. 2f all t6e weig6t$ are ero, all t6e e>tra $pa"e appear$ *etween t6e grid$ of t6e "ell and t6e top and *ottom edge$. 06e default value of t6i$ field i$ @.

public int anchor 06i$ field i$ u$ed w6en t6e "omponent i$ $maller t6an it$ di$play area. 2t determine$ w6ere, wit6in t6e di$play area, to pla"e t6e "omponent. Po$$i*le value$ are C/50/1, 5'104, 5'104/AS0, /AS0, S';04/AS0, S';04, S';04:/S0, :/S0, and 5'104:/S0. 06e default value i$ C/50/1. public int fill 06i$ field i$ u$ed w6en t6e "omponentP$ di$play area i$ larger t6an t6e "omponentP$ reQue$ted $i e. 2t determine$ w6et6er to re$i e t6e "omponent, and if $o, 6ow. 06e following value$ are valid for fill. R 5'5/. 9o not re$i e t6e "omponent. R 4'12N'50AL. MaHe t6e "omponent wide enoug6 to fill it$ di$play area 6ori ontally, *ut do not "6ange it$ 6eig6t. R 8/102CAL. MaHe t6e "omponent tall enoug6 to fill it$ di$play area verti"ally, *ut do not "6ange it$ widt6. R B'04. MaHe t6e "omponent fill it$ di$play area entirely. 06e default value i$ 5'5/. public java.awt.Insets insets 06i$ field $pe"ifie$ t6e e>ternal padding of t6e "omponent, t6e minimum amount of $pa"e *etween t6e "omponent and t6e edge$ of it$ di$play area. 06e default value i$ new 2n$et$(@, @, @, @). public int ipadx 06i$ field $pe"ifie$ t6e internal padding of t6e "omponent, 6ow mu"6 $pa"e to add to t6e minimum widt6 of t6e "omponent. 06e widt6 of t6e "omponent i$ at lea$t it$ minimum widt6 plu$ (ipad> C B) pi>el$. 06e default value i$ @. public int ipady 06i$ field $pe"ifie$ t6e internal padding, t6at i$, 6ow mu"6 $pa"e to add to t6e minimum 6eig6t of t6e "omponent. 06e 6eig6t of t6e "omponent i$ at lea$t it$ minimum 6eig6t plu$ (ipady C B) pi>el$. 06e default value i$ @.

3 emplu2 adaug\ la o fereastr\ componente astfel 2

import java.awt.C% import java.awt.event.C% pu*li" "la$$ 0e$t3ridBagLayout D

pu*li" $tati" void main(String arg$EF) D Ferea$tra f 7 new Ferea$tra(G0e$t 3ridBagLayoutG)% 3ridBagLayout gridBag 7 new 3ridBagLayout()% f.$etLayout(gridBag)% 3ridBagCon$traint$ " 7 new 3ridBagCon$traint$()% ".weig6t> 7 A.@% ".weig6ty 7 A.@% ".in$et$ 7 new 2n$et$(,, ,, ,, ,)% La*el l 7 new La*el(G0e$t 3ridBagLayoutG)% l.$etFont(new Font(G0ime$ 5ew 1omanG, Font.B'L9 S Font.20AL2C, BL))% ".grid> 7 @% ".gridy 7 @% ".gridwidt6 7 B% ".grid6eig6t 7 B% gridBag.$etCon$traint$(l, ")% f.add(l)% Button *tnA 7 new Button(G'(G)% ".grid> 7 B% ".gridy 7 @% ".gridwidt6 7 A% ".grid6eig6t 7 A% ".fill 7 3ridBagCon$traint$.4'12N'50AL% gridBag.$etCon$traint$(*tnA, ")% f.add(*tnA)% Button *tnB 7 new Button(GCan"elG)% ".grid> 7 B% ".gridy 7 A% ".fill 7 3ridBagCon$traint$.4'12N'50AL% gridBag.$etCon$traint$(*tnB, ")% f.add(*tnB)% 0e>tField tf 7 new 0e>tField(GG, B@)% ".grid> 7 @% ".gridy 7 B% ".an"6or 7 3ridBagCon$traint$./AS0% ".fill 7 3ridBagCon$traint$.5'5/% gridBag.$etCon$traint$(tf, ")% f.add(tf)% Button *tnK 7 new Button(GSendG)% ".grid> 7 B% ".gridy 7 B% ".an"6or 7 3ridBagCon$traint$.:/S0% gridBag.$etCon$traint$(*tnK, ")% f.add(*tnK)% Button *tnL 7 new Button(G/>itG)% ".grid> 7 @% ".gridy 7 K% ".gridwidt6 7 K%

".fill 7 3ridBagCon$traint$.B'04% gridBag.$etCon$traint$(*tnL, ")% f.add(*tnL)% f.pa"H()% f.$6ow()% I I "la$$ Ferea$tra e>tend$ Frame implement$ :indowLi$tener D pu*li" Ferea$tra(String titlu) D ... I

S-ar putea să vă placă și