Hallo,
ich spiele derzeit mit dem GridBagLayout rum und habe ein Problem. Leider habe ich in anderen Threads nichts gefunden, daher machen ich einen neuen auf. Ich hoffe das geht in Ordnung.
Also hier mein Code:
makegbc Klasse:
Mein Problem ist nun das die Textfields alle eine Breite von 0 haben, also kaum sichtbar sind. Ich möchste natürlich das sie sich über die Zellenbreite 1 erstrecken.
Des Weiteren wäre es schön wenn alle Elemente beim verändern der Fenstergröße, Vergrößerung nach Unten, an der selben Stelle bleiben und sich nicht in die Mitte verziehen.
Wäre schön wenn mir jemand meine Fehler nennen könnte.
Gruß!
ich spiele derzeit mit dem GridBagLayout rum und habe ein Problem. Leider habe ich in anderen Threads nichts gefunden, daher machen ich einen neuen auf. Ich hoffe das geht in Ordnung.
Also hier mein Code:
Java:
public class Listing3106{
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
new Listing3106();
}
public Listing3106(){
JFrame frame = new JFrame();
frame.setSize(500, 200);
JPanel panel = new JPanel();
frame.setContentPane(panel);
GridBagLayout gbl = new GridBagLayout();
panel.setLayout(gbl);
GridBagConstraints gbcL1 = new GridBagConstraints();
GridBagConstraints gbcL2 = new GridBagConstraints();
JLabel label1 = new JLabel("I'm Label1. Pos 0,0");
JLabel label2 = new JLabel("I'm Label2. Pos 0,1");
gbcL1.gridx = 0;
gbcL1.gridy = 0;
gbcL1.anchor = GridBagConstraints.NORTHWEST;
gbcL2.gridx = 0;
gbcL2.gridy = 1;
gbcL2.anchor = GridBagConstraints.NORTHWEST;
gbl.setConstraints(label1, gbcL1);
gbl.setConstraints(label2, gbcL2);
//Textfields
JTextField tF1 = new JTextField();
JTextField tF2 = new JTextField();
GridBagConstraints gbc4tf1 = MakeGridBagConstrain.makeGBC(0, 2, 2, 1, GridBagConstraints.NONE);
GridBagConstraints gbc4tf2 = MakeGridBagConstrain.makeGBC(0, 3, 2, 1, GridBagConstraints.NONE);
//gbc.width test
// gbc4tf1.weightx = 5.0;
// gbc4tf2.weightx = 5.0;
gbl.setConstraints(tF1, gbc4tf1);
gbl.setConstraints(tF2, gbc4tf2);
panel.add(tF1);
panel.add(tF2);
panel.add(label1);
panel.add(label2);
frame.setVisible(true);
}
}
makegbc Klasse:
Java:
public class MakeGridBagConstrain {
public static GridBagConstraints makeGBC (int x, int y, int width, int height, int fill){
GridBagConstraints gbc = new GridBagConstraints();
gbc.gridx = x;
gbc.gridy = y;
gbc.gridwidth = width;
gbc.gridheight = height;
gbc.insets = new Insets(1,1,1,1);
gbc.fill = fill;
return gbc;
}
}
Mein Problem ist nun das die Textfields alle eine Breite von 0 haben, also kaum sichtbar sind. Ich möchste natürlich das sie sich über die Zellenbreite 1 erstrecken.
Des Weiteren wäre es schön wenn alle Elemente beim verändern der Fenstergröße, Vergrößerung nach Unten, an der selben Stelle bleiben und sich nicht in die Mitte verziehen.
Wäre schön wenn mir jemand meine Fehler nennen könnte.
Gruß!