# GridBagLayout



## MScalli (13. Februar 2008)

Hi leutz.
hab ein kleines Problem mit meinem GridBagLayout.
Ist ein ziemlich grosses Formular und ich will die einzelnen panels mit diesem
Layout Manager Platzieren.

hier mal ein lauffähiges prog, das das obere drittel meines JFrames ist.

dies ist aufgeteilt in 3 Zeilen und 5 Spalten

d.h k4, k2 und k3 sollten die gleiche höhe haben(über eine zeile)
und k1, k5, k6 und k7 sollten gleich hoch sein(über zwei zeilen).

sieht wer den Fehler  was mach ich den falsch?
das will einfach net 


```
import java.awt.*;
import javax.swing.*;
class GridBagLayoutDemo
{
  static void addComponent( Container cont,
                            GridBagLayout gbl,
                            Component c,
                            int x, int y,
                            int width, int height,
                            double weightx, double weighty )
  {
    GridBagConstraints gbc = new GridBagConstraints();
    gbc.fill = GridBagConstraints.BOTH;
    gbc.gridx = x; gbc.gridy = y;
    gbc.gridwidth = width; gbc.gridheight = height;
    gbc.weightx = weightx; gbc.weighty = weighty;
    gbl.setConstraints( c, gbc );
    cont.add( c );
  }
  public static void main( String[] args )
  {
    JFrame f = new JFrame();
    f.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
    Container c = f.getContentPane();
    GridBagLayout gbl = new GridBagLayout();
    c.setLayout( gbl );
    //                                      	 x  y  w  h  wx   wy
	addComponent( c, gbl, new JButton("K1"), 0, 0, 1, 2, 0.30 , 0.8);
	addComponent( c, gbl, new JButton("K2"), 1, 0, 3, 1, 0.45 , 0.3 );
	addComponent( c, gbl, new JButton("K3"), 4, 0, 1, 1, 0.25 , 0.3 );
	addComponent( c, gbl, new JButton("K4"), 0, 2, 1, 1, 0.30 , 0.2 );
	addComponent( c, gbl, new JButton("K5"), 1, 1, 2, 2, 0.20 , 0.7 );
	addComponent( c, gbl, new JButton("K6"), 3, 1, 1, 2, 0.25 , 0.7 );
	addComponent( c, gbl, new JButton("K7"), 4, 1, 1, 2, 0.25 , 0.7 );

    f.setSize( 300, 200 );
    f.setVisible( true );
  }
}
```


----------



## TheJadix (13. Februar 2008)

Hallo,

versuche doch statt : 


```
gbl.setConstraints( c, gbc );
    cont.add( c );
```
erst einmal :


```
cont.add( c,gbc );
```

und dann mal schauen !

Gruß JAdix


----------



## MScalli (15. Februar 2008)

ist genau das selbe bild.. bringt mir also nichts.

Aber danke schon mal.


----------



## Bernd1984 (15. Februar 2008)

Hallo MScalli,

versuchs mal so:

```
addComponent( c, gbl, new JButton("K1"), 0, 0, 1, 2, 0 , 1 );
    addComponent( c, gbl, new JButton("K2"), 1, 0, 3, 1, 0 , 0 );
    addComponent( c, gbl, new JButton("K3"), 4, 0, 1, 1, 0 , 0 );
    addComponent( c, gbl, new JButton("K4"), 0, 2, 1, 1, 0 , 0 );
    addComponent( c, gbl, new JButton("K5"), 1, 1, 2, 2, 1 , 0 );
    addComponent( c, gbl, new JButton("K6"), 3, 1, 1, 2, 0 , 0 );
    addComponent( c, gbl, new JButton("K7"), 4, 1, 1, 2, 0 , 0 );
```
Das Layout, das du mit den Werten von x, y, w und h gemacht hast, ist ja ok.
Aber du must auch die Werte für wx und wy richtig setzten.


----------

