Java Swing - Responsive - Welches Layout ist erforderlich?

1 Antwort

Du kannst ein GridBagLayout verwenden.

Ein Minimalbeispiel dazu:

JFrame frame = new JFrame("Example");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(new GridBagLayout());

JPanel panel = new JPanel();
panel.add(new JLabel("Some text"));
frame.add(panel, new GridBagConstraints());

frame.setSize(500, 500);
frame.setVisible(true);

An der Stelle wird natürlich nur das Panel zentriert.

Wenn du mehrere Elemente in das Panel einfügst, werden diese initial horizontal hintereinander angeordnet. Für eine vertikale Ausrichtung wäre die Angabe eines eigenen BoxLayouts passend.

panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));

Einzelne Komponenten kannst du nochmals separat explizit zentrieren.

Beispiel für eine horizontale Zentrierung:

label.setAlignmentX(JLabel.CENTER_ALIGNMENT);