# JPanel minimumSize



## sMau90 (4. Apr 2011)

Hey,
Ich habe Zwei Panels, die jeweils ein Label halten. Ich hätte gerne, dass die Panels jeweils nicht kleiner als 220*170 werden. Allerdings werden sie schon nach Programmstart mit 10*10 Pixeln angezeigt.

Mein Code:

[Java]
	panelPreview = new JPanel();
		panelPreview.setMinimumSize(new Dimension(230, 400));
		panel.add(panelPreview);
		panelPreview.setLayout(new BoxLayout(panelPreview, BoxLayout.Y_AXIS));

		panelPreviewNext = new JPanel();
		panelPreviewNext.setMinimumSize(new Dimension(220, 170));
		panelPreview.add(panelPreviewNext);
		panelPreviewNext.setBorder(new TitledBorder(null, "Preview Next", TitledBorder.LEADING, TitledBorder.TOP, null, null));

		lblPreviewNext = new JLabel("");
		panelPreviewNext.add(lblPreviewNext);

		panelPreviewSel = new JPanel();
		panelPreviewSel.setMinimumSize(new Dimension(220, 170));
		panelPreview.add(panelPreviewSel);
		panelPreviewSel.setBorder(new TitledBorder(null, "Preview Selected", TitledBorder.LEADING, TitledBorder.TOP, null, null));

		lblPreviewSel = new JLabel("");
		panelPreviewSel.add(lblPreviewSel);
[/code]

Wie erreiche ich, dass die Panels nach Programmstart bereits die Größe von 220*170 Pixeln haben und auch nicht kleiner werden können? Ich nehme mal an, dass es ja irgendwas mit dem LayoutManager zu tun hat, allerdings weis ich einfach nicht wie ich das realisieren kann.

Vielen Danke schonmal
Grüße,
sMau


----------



## hansmueller (4. Apr 2011)

Hallo,

hast du es schon mit .pack() auf dein JFrame probiert?

MfG
hansmueller


----------



## André Uhres (4. Apr 2011)

Hallo sMau90,

versuch's mal mit setPreferredSize.

Gruß,
André


----------



## sMau90 (4. Apr 2011)

Danke, das mit der preferredSize hat schonmal weiter geholfen. Nur jetzt habe ich das Problem, dass wenn der Inhalt das JLabels im jeweiligen Panel "größer" als die gesetzte preferredSize ist, sich das Panel nicht mehr automatisch vergrößert. Gibt es eine Möglichkeit diese Eigenschaft wiederherzustellen?


----------



## Marco13 (4. Apr 2011)

Theoretisch könnte man setPreferredSize überschreiben, aber das wird dann irgendwann murksig. Eigentlich sollte setMinimumSize auch schon reichen, vermutlich stimmt da mit dem Layout was nicht (BoxLayout ist da AFAIK manchmal etwas... ja, was nun? "Freigeistig" oder im Gegenteil, "widerspenstig"? Vermutlich beides  ). Poste ggf. mal ein KSKB, und Infos, wie "starr" die bisher genannten Bedingungen eingehalten werden sollen...


----------



## sMau90 (4. Apr 2011)

Danke für die Antworten. 
Hab mein Problem jetzt anders gelöst. Da die beiden Panels bzw. eher die Labels darin eine Art von Previews von Bilddateien anzeigen, ändert sich die Größe nicht so oft (lediglich Hoch- zu Querformat). Daher hab ich das ganze jetzt einfach "manuell" implementiert und setze entsprechend selbst im Code die Größe, wenn sie sich ändert.

Grüße,
sMau


----------

