PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Java - JInternalFrame Größe


Gast
2009-01-12, 16:32:05
Hallo!

Wie kann ich die Größe des "Schnörkels" eines JInternalFrames abfragen? *g*

Hintergrund:
Ich bekomme von einer Klasse ein JPanel gestellt, die Größe des Panels kann ich mit getPreferredSize() erfragen. Das Panel soll nun in ein JInternalFrame verpackt werden und auf einem JDesktop angezeigt werden.
Das Problem, das ich habe, ist, dass ich mit setSize (bzw setBounds) zwar die 'absolute' Größe des InternalFrame festlegen kann, aber dabei die Ränder und die Titelleiste Platz in Anspruch nehmen.

Ist das JPanel 100x100 gross und ich setze die Größe des InternalFrames auf 100x100, dann wird das JPanel nicht vollständig im InternalFrame angezeigt.
Ich muss also auf die Größe vom InternalFrame noch irgendwas draufrechnen - ich weiss nur nicht, wieviel und wie ich das erfragen kann.

Danke schonmal!

robobimbo
2009-01-12, 22:29:04
Also bei einem Applet bzw. normalen JFrame kriegst du es über this.getContentPane().getHeight() raus

Gast
2009-01-13, 13:18:09
Also bei einem Applet bzw. normalen JFrame kriegst du es über this.getContentPane().getHeight() rausSchon, aber doch erst, nachdem das ganze Frame bereits "fertig" ist, aber dann ist's schon zu spät:
Das InternalFrame muss ja 100+X breit und 100+Y hoch sein, wenn das einzupackende Panel 100x100 gross ist und vollständig im InternalFrame enthalten sein soll. Das InternalFrame fügt ja noch Ränder und eine Titelleiste hinzu und zwar "innerhalb" des Frames, d.h. Ränder und Titelleiste klauen Platz, die das Panel weniger als 100x100 gross werden lassen.
Irgendwie muss man die "Properities" von so einem InternalFrame doch erfragen können, getBorderThickness(), getTitelBounds() oder sowas...

robobimbo
2009-01-14, 23:16:26
Verstehe schon,

dann mach folgendes, setze irgend eine Grösse für den internal Frame

häng in den internal fram mittels .getContentPane().add(deinJPanel) dein JPanel rein
setze für das JPanel die richtige PreferedSize

und dann mach auf den JInternalFram ein .pack() - das passt die Grösse dann automatisch richtig ans JPanel an