GridBagLayout skaliert nicht wie erwartet

Hallo zusammen,
ich arbeite gerade an einem GridBagLayout, welches sich aber nicht wie gewünscht verhält…
Ich hätte gerne folgendes Layout:

Bekomme aber nur folgendes hin:

Als Code habe ich folgenden:


//Komponenten dem Layout hinzufügen 			        x  y  w  h  wx   wy	
addComponentToGridBagLayout(cont, gbl, new JButton("1"),0, 0, 8, 1, 1.0, 1.0);
addComponentToGridBagLayout(cont, gbl, new JButton("2"),0, 1, 5, 3, 1.0, 1.0);
addComponentToGridBagLayout(cont, gbl, new JButton("3"),5, 1, 1, 3, 1.0, 1.0);
addComponentToGridBagLayout(cont, gbl, new JButton("4"),0, 4, 6, 1, 1.0, 1.0);
addComponentToGridBagLayout(cont, gbl, new JButton("5"),0, 5, 6, 2, 1.0, 1.0);
addComponentToGridBagLayout(cont, gbl, new JButton("6"),0, 7, 6, 1, 1.0, 1.0);
addComponentToGridBagLayout(cont, gbl, new JButton("7"),6, 1, 2, 7, 1.0, 1.0);
addComponentToGridBagLayout(cont, gbl, new JButton("8"),0, 8, 8, 1, 1.0, 1.0);

Die Methode zum hinzufügen der Komponenten sieht so aus:


private static void addComponentToGridBagLayout(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);
	}

Was muss ich denn machen, damit die einzelnen Komponenten verschiedene Größen haben können?

Momentan gibst du jeder Komponente die gleichen weight Werte mit, das heißt alle Zellen wachsen “gleich weit” in jede Richtung.
Spiele mal mit den weight Werten ein wenig rum, dann dürfte schnell klar werden wie die funktionieren.

Alles klar. Danke für die Hilfe!

Auch mal Wiki lesen: http://wiki.byte-welt.net/wiki/GridBagLayout