Guten Abend zusammen,
ich komme derzeit bei diesem doch recht "lächerlichem" Problem nicht weiter und möchte hiermit um eure Hilfe bitten.
Zum Problem:
Ich habe mehrere JPanels, alle von denen haben eine unterschiedliche Größe, da jedes JPanel eine unterschiedliche Anzahl an JLabels hat.
Wenn ich diese JPanels jetzt einem JPanel zuordne, welches als Layout den FlowLayout nutzt, dann reihen sich alle schön zentiert in der X-Achse ein, soweit so gut.
Da aber die JPanels alle eine unterschiedliche Größe besitzten, kommt es zum Problem:
Die kleineren JPanels zentrieren sich in der Y-Achse mittig zum größten JPanel im FlowLayout, jedoch möchte ich, dass die kleineren JPanels sich alle oben anordnen, genauso wie der größte JPanel.
Ich habe zwei Bild angehangen, einmal der IST-Zustand und der SOLL-Zustand.
Ich hätte gerne das die Labels trotz unterschiedlicher Größe auf gleicher Höhe sind (Siehe Bild 2), wie erziele ich das gewünschte Ergebnis?
MfG Exolution
Der Code:
ich komme derzeit bei diesem doch recht "lächerlichem" Problem nicht weiter und möchte hiermit um eure Hilfe bitten.
Zum Problem:
Ich habe mehrere JPanels, alle von denen haben eine unterschiedliche Größe, da jedes JPanel eine unterschiedliche Anzahl an JLabels hat.
Wenn ich diese JPanels jetzt einem JPanel zuordne, welches als Layout den FlowLayout nutzt, dann reihen sich alle schön zentiert in der X-Achse ein, soweit so gut.
Da aber die JPanels alle eine unterschiedliche Größe besitzten, kommt es zum Problem:
Die kleineren JPanels zentrieren sich in der Y-Achse mittig zum größten JPanel im FlowLayout, jedoch möchte ich, dass die kleineren JPanels sich alle oben anordnen, genauso wie der größte JPanel.
Ich habe zwei Bild angehangen, einmal der IST-Zustand und der SOLL-Zustand.
Ich hätte gerne das die Labels trotz unterschiedlicher Größe auf gleicher Höhe sind (Siehe Bild 2), wie erziele ich das gewünschte Ergebnis?
MfG Exolution
Der Code:
Java:
public class Problem {
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setSize(1300, 700);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setResizable(false);
frame.getContentPane().setBackground(Color.RED);
JPanel maincontent = new JPanel();
maincontent.setBorder(BorderFactory.createEmptyBorder(25, 25, 25, 25));
maincontent.setBackground(Color.GREEN);
maincontent.setSize(1275, 675);
maincontent.setLayout(new GridLayout());
JPanel mainpanel = new JPanel();
mainpanel.setLayout(new FlowLayout(FlowLayout.CENTER, 30, 0));
JPanel content1 = new JPanel();
content1.setLayout(new GridBagLayout());
GridBagConstraints gbc = new GridBagConstraints();
gbc.gridx = 0;
gbc.anchor = gbc.NORTHWEST;
for (int i = 0; i < 10; i++) {
gbc.gridy = i;
content1.add(new JLabel("Label: " + (i+1)), gbc);
}
mainpanel.add(content1);
JPanel content2 = new JPanel();
content2.setLayout(new GridBagLayout());
GridBagConstraints gbc2 = new GridBagConstraints();
gbc2.gridx = 0;
gbc2.anchor = gbc2.NORTHWEST;
for (int i = 0; i < 15; i++) {
gbc2.gridy = i;
content2.add(new JLabel("Label: " + (i+1)), gbc2);
}
mainpanel.add(content2);
maincontent.add(mainpanel);
frame.getContentPane().add(maincontent);
frame.setVisible(true);
}
}