Problem mit setMinimumSize

mattulla

Grünschnabel
Hallo,

hatte das Problem schon des oefteren und jetzt gerade aktuell wieder. Um es leichter zu machen Poste ich hier mal eine abgespeckte Version die das Problem aber genau darstellt. habe also ein JFrame in welchem sich 2 Panels befinden. Benutzte das BorderLayout. Einer der Panels soll im Westen liegen der andere ist Center. Der Center nimmt sich also all den Platz den das Panel im Westen nicht benoetigt. Nun moechte ich, dass das Panel im Westen eine Mindestgroesse behaelt auch wenn die Elemente die sich in dem Panel befinden den Platz vll gar nicht gebrauchen. Versuche das dann immer mit setMinimunSize(z.B.:400, 800). Eine solche Angabe scheint dem LayoutManager jedoch nicht zu interessieren er stellt das Panel trotzdem kleiner dar. Kann mir einer sagen wie ich das mit der minimalen Groesse hinbekomme oder wenigstens warum es so wie ich es mache nicht funktioniert?

Hier mal mein Code:
Code:
public class A 
{
	
	public static void main(String[] args) {
		
		JFrame frame = new JFrame();
		frame.setSize(800, 800);
		BorderLayout bl = new BorderLayout(10, 10);
		frame.setLayout(bl);
		Color c = new Color(0,0,0);
		frame.setBackground(c);
		JPanel west = new JPanel();
		JPanel center = new JPanel();
		west.setMinimumSize(new Dimension(400, frame.HEIGHT));
		west.setBackground(c.RED);
		center.setBackground(c.GREEN);
		frame.add(west, BorderLayout.WEST);
		frame.add(center, BorderLayout.CENTER);
		
		frame.setVisible(true);
	}
}

Danke schon mal im voraus fuer die Hilfe!

mattulla
 
Zuletzt bearbeitet:
hmmm ja das funktioniert tatsaechlich....DANKE!

Aber hat vielleicht einer eine Erklaerung warum setMinimumSize alleine nicht funktioniert? Fuer mich ist das erst mal nicht wirklich logisch.
 
Kee Ahnung,

stell dir einfach vor, setMinimumSize() funktioniert nur in Verbindung mit setPreferredSize().

Aber ich glaub Schnuffie müsste da Bescheid wissen, was der Hintergrund der Sache ist.


Vg Erdal
 
Du benutzt einen Layout-Manager, diese orientieren sich (soweit ich weiß) generell an "PreferredSize" (= bevorzugte Größe).

Am besten siehst Du das, wenn Du die "pack()"-Methode des Frames verwendest.

"MinimumSize" und "MaximumSize" kommen ins Spiel, wenn die Komponente des Layout-Managers (bei Dir der Frame) zu stark verkleinert, bzw. vergrößert wird. Das sieht man daran, wenn die Komponenten aus "dem Bild" herausragen oder rundherum viel "Luft" ist.

"Size" funktioniert nur bei Frame und Window.

Analog gilt dies auch für die Swing-Komponenten.
 
Zurück