# Wozu eigentlich getContentPane() ?



## Swiffy (6. Mai 2008)

Bei vielen Swing-Beispielen steht meistens immer


```
f.getContentPane().add(new SwingDemo());
  f.pack();
```

Wozu eigenltich .getContentPane ? Ich kann doch auch gleich aufs JFrame ein "normales" JPanel draufkleben und dort alles machen ?

Was bringt der Aufruf mit .getContentPane ?

und was bringt 

f.pack()

Kann man auch weglassen und trotzdem tut alles !


----------



## Niki (6. Mai 2008)

Seit Java 5 geht das auch ohne getContentPane(). Vorher hättest du eine Exception bekommen. Man hat es sich halt nicht abgewöhnt alles über den Container zu machen.

//EDIT

pack() setzt alle Komponenten auf die preferredSize, das hat nur Sinn wenn du auf setSize() verzichtest. Normalerweise schaut das so aus:


```
pack();
setLocationRelativeTo(null);
setVisible(true);
```


----------



## Swiffy (6. Mai 2008)

Kann ich dann immer das .getContentPane weglassen ?

Ein Rückschritt wird es ja mit neuen Java-Versionen hoffentilch nicht geben...


----------



## SlaterB (6. Mai 2008)

nicht immer, bei setBackGroundColor() ist das wohl nicht so erfolgreich,
vielleicht auch nicht beim Layout setzen, testen


----------



## heinrich (6. Mai 2008)

SlaterB hat gesagt.:
			
		

> nicht immer, bei setBackGroundColor() ist das wohl nicht so erfolgreich,
> vielleicht auch nicht beim Layout setzen, testen



Doch, an den Stellen kann man es immer weglassen.
Die einzigste Stelle, die ich noch gefunden hab ist, wenn du den Hintergrund von einem JDialog setzen willst.
Da kann man myDialog.setBackground(Color.RED); machen. Bringt aber nix.
Geht nur über das ContentPane des Dialogs.


----------



## Niki (6. Mai 2008)

> ...Die einzigste Stelle, die....



einzigste ist kein Wort, es heißt einzige!


----------



## heinrich (6. Mai 2008)

Jou, recht haste.


----------



## Quaxli (6. Mai 2008)

Wir hatten aber trotzdem gewußt, was Du meinst


----------



## heinrich (6. Mai 2008)

Jetzt nicht mehr?

Nu ist aber genug mit der Klugscheisserei.


----------

