GridBagLayout

MScalli

Erfahrenes Mitglied
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 :(

Code:
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 );
  }
}
 
Zuletzt bearbeitet:
Hallo,

versuche doch statt :

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

Code:
    cont.add( c,gbc );

und dann mal schauen !

Gruß JAdix
 
Hallo MScalli,

versuchs mal so:
Code:
    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.
 
Zurück