You are on page 1of 14

Gestionarea pozi]ion\rii

Crearea obiectelor grafce nu realizeaz\ automat [i


af[area lor pe ecran. Mai nti ele trebuie a[ezate pe o
suprafa]\, care poate f o fereastr\ sau suprafa]\ unui applet,
[i vor deveni vizibile n momentul n care suprafa]a pe care
sunt af[ate va f vizibil\. astfel de suprafa]\ pe care se
a[eaz\ obiectele grafce reprezint\ o instan]\ a unei clase
ob]inut\ prin e!tensia clasei Container.
"d\ugarea unui obiect grafc 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 insufcient. "ceasta
nseamn\ c\ redimensionarea ferestrei poate provoca
rearan%area controalelor pe suprafa]a de af[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 af[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.
#anel
Container
+indo,
"pplet &rame -ialog
#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 0 pozi]ii
corespunz\toare celor 1 puncte cardinale [i centrului.
Gestionarul FlowLayout
"cest gestionar a[eaz\ componentele pe suprafa]a de
af[are n 2u! liniar, mai precis, componentele sunt ad\ugate
una dup\ alta pe linii, n limita spa]iului disponibil. 3n
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 f de trei feluri 4
la stnga
la drepata
centrate
-istan]a implicit\ ntre componente este de 0 unit\]i pe
vertical\ [i 0 pe orizontal\.
5ste gestionarul implicit al clasei Applet.
/tilizarea cea mai frevent\ o are la amplasarea mai
multor butoane ntr$un Panel.
-imeniunile componentelor af[ate sunt preluate
automat de c\tre gestionar prin intermediul metodei
getPreferredSie(), implementat\ de toate componentele
standard.
5!emplu4
!"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 oriontala, "-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 oriontala +ntre "omponente
vgap 7 di$tanta pe verti"ala +ntre linii
6ariabile
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 minimumLayoutSie( java.awt.Container target )
java.awt.9imen$ion preferredLayoutSie( java.awt.Container target )
void removeLayoutComponent( java.awt.Component "omp )
java.lang.String toString( )
Gestionarul BorderLayout
Gestionarul BorderLayout mparte suprafa]a de af[are n
0 regiuni, corespunz\toare celor 1 puncte cardinale [i
centrului. component\ poate f plasat\ n oricare din aceste
regiuni, dimeniunea componentei find calculat\ astfel nct s\
ocupe ntreg spa]iul de af[are oferit de regiunea respectiv\.
#entru a ad\uga mai multe obiecte grafce ntr$una din cele 0
zone, ele trebuie grupate n prealabil ntr$un Panel, care va f
amplasat apoi n regiunea dorit\.
7ort.
+es
t
8out.
5ast Center
"[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 f
amplasat\, acesta find apecifcat\ prin una din constantele
5ort6, Sout6, :e$t, /a$t,sau Center.
5!emplu4
!"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
6ariabile
pu*li" $tati" final java.lang.String 5'104
pu*li" $tati" final java.lang.String S';04
pu*li" $tati" final java.lang.String /AS0
pu*li" $tati" final java.lang.String :/S0
pu*li" $tati" final java.lang.String 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>imumLayoutSie( java.awt.Container target )
java.awt.9imen$ion minimumLayoutSie( java.awt.Container target )
java.awt.9imen$ion preferredLayoutSie( 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. 8uprafa]a de af[are poate f asem\nat\ cu
pac.etul de c\r]i iar fecare component\ este o carte din
pac.et. )a un moment dat numai o singur\ component\ este
vizibil\ '9cea de deasupra:*. Clasa dispune de metode prin
care s\ poat\ f af[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 find intern\ gestionarului
"cest gestionar este util pentru implementarea unor
cutii de dialog de tip tab, n care pentru o gestionare mai
efcient\ a spa]iului, componentele sunt grupate n pac.ete,
la un moment dat utilizatorul interac]ionnd cu un singur
pac.et, celelate find ascunse.
"d\ugarea unei componente pe o suprafa]\ de af[are
gestionat\ de CardLayout se face prin metoda add, dar n
urm\torul format 4
add(String id?"omponenta, Component "omponenta),
unde id?"omponenta este un etic.et\ prin care va f identifcat\
componenta respectiv\ n interiorul pac.etului.
Constructori
pu*li" CardLayout( )
Creeaa un ge$tionar "u di$tanta +ntre "omponente @
pu*li" CardLayout( int 6gap, int vgap )
Creeaa 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>imumLayoutSie( java.awt.Container target )
java.awt.9imen$ion minimumLayoutSie( java.awt.Container parent )
void ne>t( java.awt.Container parent )
java.awt.9imen$ion preferredLayoutSie( 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 )
8pecifc\ noua component\ care se dore[te a f la suprafa]\
java.lang.String toString( )
5!emplu4
"f[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*. 8electarea 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$$ 0e$tCardLayout D
pu*li" $tati" void main(String arg$EF) D
Button *tnA 7 new Button(G0e>tG)%
Button *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 find 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]\. 7um\rul de
linii [i coloane poate f specifcat n constructorul
gestionarului dar poate f modifcat [i ulterior prin metodele
$et1ow$ [i $etCol$. -e asemenea, distan]a ntre componente
pe orizontal\ [i distan]a ntre rndurile tabelului pot f
specifcate n constructor sau stabilite ulterior.
"cest tip de gestionar poate f util n implementarea
unor componente de tip calculator, n care numerele [i
opera]iile sunt af[ate prin intermediul unor butoane dispuse
sub forma unei grile.
Constructori
pu*li" 3ridLayout( )
Creeaz\ un gestionar ;!;
pu*li" 3ridLayout( int row$, int "ol$ )
Creeaz\ un gestionar cu dimensiunile specifcate. -ac\ una din dimensiuni
este <, pe cealalt\ dimeniune pot f plasate un num\r nelimitat de
componente.
pu*li" 3ridLayout( int row$, int "ol$, int 6gap, int vgap )
8e specifc\ [i distan]ele ntre componente
bs4 /ltimii doi constructori pot genera o e!cep]ie de tipul
3llegal"rgument5!ception dac\ num\rul de linii sau coloane specifcat 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 minimumLayoutSie( java.awt.Container parent )
java.awt.9imen$ion preferredLayoutSie( java.awt.Container parent )
void removeLayoutComponent( java.awt.Component "omp )
java.lang.String toString( )
5!emplu4
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
5ste cel mai comples [i 2e!ibil gestionar de pozi]ionare din
=ava.
)a fe ca n cazul gestionarului Grid)a>out, suprafa]a de
af[are este considerat\ ca find 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 af[are. -e asemenea, n func]ie de componentele
gestionate, dimensiunile c\su]elor pot f 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. 8pre
deosebire de 3ridLayout o component\ poate ocupa mai
multe celule adiacente, c.iar de dimensiuni diferite, zona
ocupat\ find referit\ prin 9regiunea de af[are: a componentei
respective.
#entru a specifca modul de af[are al unei componente,
acesteia i poate f asociat un obiect de tip
3ridBagCon$traint$, n care se specifc\ diferite propriet\]i ale
componentei referitoare la regiunea sa de af[are [i la modul
n care va f plasat\ n aceast\ regiune.
)eg\tura dintre o component\ [i un obiect
3ridBagCon$traint$ se realizeaz\ prin metode $etCon$traint$ 4
/>.
3ridBagLayout gridBag 7 new 3ridBagLayout()%
$etLayout(gridBag)%
3ridBagCon$traint$ " 7 new 3ridBagCon$traint$()%
??se specifca propriet\]ile rederitoare la af[area componentei
??...
gridBag.add(!"omponenta#, ")%
add.!"omponenta#
Clasa 3ridBagLayout
Constructor
pu*li" 3ridBagLayout( )
6ariabile
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>imumLayoutSie( java.awt.Container target )
java.awt.9imen$ion minimumLayoutSie( java.awt.Container parent )
java.awt.9imen$ion preferredLayoutSie( 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$( )
6ariabile
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$ie t6e "omponent.
pu*li" $tati" final int B'04
1e$ie t6e "omponent *ot6 6oriontally and verti"ally.
pu*li" $tati" final int 4'12N'50AL
1e$ie t6e "omponent 6oriontally *ut not verti"ally.
pu*li" $tati" final int 8/102CAL
1e$ie t6e "omponent verti"ally *ut not 6oriontally.
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
6oriontally.
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
6oriontally.
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 6oriontal $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 6oriontally 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 $ie. 2t determine$ w6et6er to re$ie t6e
"omponent, and if $o, 6ow.
06e following value$ are valid for fill.
R 5'5/. 9o not re$ie t6e "omponent.
R 4'12N'50AL. MaHe t6e "omponent wide enoug6 to fill it$ di$play
area 6oriontally, *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$ @.
5!emplu4 adaug\ la o fereastr\ componente astfel 4
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