Hallo zusammen,
ich versuche zur Zeit ein JPanel zu erstellen, dass drei weitere JPanel untereinander anzeigt. Diese 3 JPanel haben als Layout ein GridBagLayout. Dabei sind dieses 3 JPanels alle drei unterschiedlich breit, was dazu führt, dass nur das längste der drei JPanel links ausgerichtet ist und die beiden anderen Zentriert. Ich möchte jedoch, dass alle 3 JPanels links ausgerichtet sind. setAlignmentY(JPanel.LEFT_ALIGNMENT) führt jedoch zu nichts. (habe auch setAlignmentX probiert...).
Wie kriege ich das hin?
Nochmal zusammengefasst:
Aktuell:
Danach:
Sollen Long Key, Key und A alle auf derselben höhe beginnen.
Samplecode:
ich versuche zur Zeit ein JPanel zu erstellen, dass drei weitere JPanel untereinander anzeigt. Diese 3 JPanel haben als Layout ein GridBagLayout. Dabei sind dieses 3 JPanels alle drei unterschiedlich breit, was dazu führt, dass nur das längste der drei JPanel links ausgerichtet ist und die beiden anderen Zentriert. Ich möchte jedoch, dass alle 3 JPanels links ausgerichtet sind. setAlignmentY(JPanel.LEFT_ALIGNMENT) führt jedoch zu nichts. (habe auch setAlignmentX probiert...).
Wie kriege ich das hin?
Nochmal zusammengefasst:
Aktuell:

Danach:
Sollen Long Key, Key und A alle auf derselben höhe beginnen.
Samplecode:
Code:
import java.awt.BorderLayout;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class Test {
public static void main(String[] args) {
// create grid bag constraints
GridBagConstraints keyConstraint = getConstraint(0);
GridBagConstraints valueConstraint = getConstraint(1);
// create first bordered panel
JPanel borderPanel1 = new JPanel(new GridBagLayout());
borderPanel1.setBorder(BorderFactory
.createTitledBorder("Border panel 1"));
borderPanel1.add(new JLabel("Long key:"), keyConstraint);
borderPanel1.add(new JLabel("Long value"), valueConstraint);
// create second border panel
JPanel borderPanel2 = new JPanel(new GridBagLayout());
borderPanel2.setBorder(BorderFactory
.createTitledBorder("Border panel 2"));
borderPanel2.add(new JLabel("Key:"), keyConstraint);
borderPanel2.add(new JLabel("Value"), valueConstraint);
// create third border panel
JPanel borderPanel3 = new JPanel(new GridBagLayout());
borderPanel3.setBorder(BorderFactory
.createTitledBorder("Border panel 3"));
borderPanel3.add(new JLabel("A:"), keyConstraint);
borderPanel3.add(new JLabel("B"), valueConstraint);
// create main panel
JPanel panel = new JPanel(new BorderLayout());
panel.add(borderPanel1, BorderLayout.NORTH);
panel.add(borderPanel2, BorderLayout.CENTER);
panel.add(borderPanel3, BorderLayout.SOUTH);
// create frame
JFrame frame = new JFrame("Test");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(panel);
frame.pack();
frame.setVisible(true);
}
private static GridBagConstraints getConstraint(int column) {
GridBagConstraints c = new GridBagConstraints();
c.anchor = GridBagConstraints.WEST;
c.gridx = column;
c.ipadx = 5;
c.ipady = 2;
return c;
}
}