Wie ändere ich die Größe und die Position des Jpanels?

1 Antwort

Die direkten Kindkomponenten in einem BorderLayout werden immer auf die komplette zur Verfügung stehende Fläche gestreckt. Du kannst ein Panel mit einem FlowLayout dazwischenschieben.

Beispiel für die linke Seite:

var panel = new JPanel(new GridLayout(4, 1));
/* ... */
var leftContainer = new JPanel();
leftContainer.add(panel);
frame.add(leftContainer, BorderLayout.LINE_START);

Das Panel mit dem GridLayout würde daraufhin nur den Platz einnehmen, der tatsächlich benötigt wird. Um dessen Größe erneut zu skalieren, könntest du eine bevorzugte Größe (setPreferredSize) angeben oder die Zellenabstände vergrößern (setHgap, setVgap).