wie kommt getPreferredSize() zustande?

Status
Nicht offen für weitere Antworten.

Pete23

Mitglied
ich würde gerne etwas hintergrund info zu getPreferredSize() haben...

Code:
okBtn = new JButton ("OK");
okBtn.setSize(getPreferredSize());

... dieser ok-Button ist bei mir extrem breit, viel breiter als er sein müsste. woran passt er sich an??
(im JPanel, wo der Button dann reinkommt, hab ich layout(null))
 
Code:
okBtn = new JButton ("OK");
		okBtn.setSize(getMinimumSize());
		System.err.println(okBtn.getSize() +" " +okBtn.getMinimumSize() +" " +okBtn.getPreferredSize());

liefert folgende ausgabe:

Code:
java.awt.Dimension[width=191,height=33] java.awt.Dimension[width=49,height=25] java.awt.Dimension[width=49,height=25]

diese zeilen stehen direkt hintereinander. warum nimmt er nicht minimumsize an?
 
sag mal okBtn.setPreferredSize(getMinimumSize());

oder okBtn.setMaximumSize(getMinimumSize()); //hier kann er dann halt nima größer werden!
 
wenn ich nur setMaximumSize() oder setPreferredSize() mache, sehe ich den Button garnicht mehr.
ich glaub das Problem ist einfach, dass die Size automatisch neu gesetzt wird...
ich wüsste eben nur nicht, wann und von wem(??)
 
dann sag mal setPreferredSize(new Dimension(100,30));

und schau obs dann geht! weil ich hatte dieses prob auch einmal, er gibt dir beim setzen von der size als getXXXSize nullwerte zurück und deswegen isses net da!
 
also, extremen dank mal, aber wenn du mir das jetzt auch noch erklären könntest, wäre ich wirklich überglücklich!

wie kann bitte:
Code:
dim = okBtn.getPreferredSize();
		okBtn.setSize(dim);

funktionieren und folgends nicht:
Code:
okBtn.setSize(okBtn.getPreferredSize();

also ich bezweifle, dass mir jemals etwas unklarer war beim proggen 🙂
 
jo, das hab ich auch nicht ganz begriffen warum es so funktioniert, bin aber draufgekommen, das es halt so geht!

aber keine Ahnung warum!
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben