PDA

Visualizza la versione completa : [java]Spiegatemi il GridBagLayout


keratox
01-02-2004, 16:28
Non ho mica capito che effetto hanno le coordinate da dare!


void faiGriglia(GridBagConstraints gbc, int gx,int gy,int gw,int gh,int wx, int wy){
gbc.gridx=gx;
gbc.gridy=gy;
gbc.gridwidth=gw;
gbc.gridheight=gh;
gbc.weightx=wx;
gbc.weighty=wy;
}

sto metodo per farle



GridBagLayout gbl = new GridBagLayout();
GridBagConstraints gb = new GridBagConstraints();
faiGriglia(gb,100,110,11,111,10,100);
gbl.setConstraints(apri,gb);

faiGriglia(gb,300,350,200,211,10,10);
gbl.setConstraints(salva,gb);

pan.setLayout(gbl);

pan.add(apri);


ora applicate

Qualcuno ha voglia di spiegarmele?

Zero-2
01-02-2004, 19:02
Con il GridBagLayout il frame viene rappresentato come una matrice , in cui ogni cella ha una sua riga e una sua colonna.
La cella in alto a sinstra ha coordinate (0,0).
gbc.gridx=gx;
gbc.gridy=gy;
Indicano il valore della cella occupata dal bordo in alto a sinistra del componente
gbc.gridwidth=gw;
gbc.gridheight=gh;
Indicano il numero di celle occupate dal compoentne lungo x e lungo y
gbc.weightx=wx;
gbc.weighty=wy;
Indicano il peso che ha il componente lungo x e lungo y .
Minore è il peso , minore sarà il ridimensionamento automatico del componente in quella direzione.

Supponiamo di avere una griglia di dimensione 4*4
Inseriamo un componente nella parte superiore sinistra di lunghezza 2 e altezza 1 e vogliamo che venga ridimensionato in tutte e due le direzioni del 100%

gbc.gridx=0;
gbc.gridy=0;
gbc.gridwidth=2;
gbc.gridheight=1;
gbc.weightx=100;
gbc.weighty=100;

e così via con gli altri componenti.

Loading