PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : JFrame, Java


Gast
2006-11-05, 15:34:32
Gibt es irgendeine Möglichkeit zu verhindern, dass ein JFrame in der Größe verändert werden kann ?
Immer wenn nämlich ein Benutzer das Fenster nach rechts oder unten größer zieht, verschwindet die Zeichnung.
(hab schon api und google benutzt aber einfach nix gefunden :-( )

Magnum
2006-11-05, 16:08:35
Gibt es irgendeine Möglichkeit zu verhindern, dass ein JFrame in der Größe verändert werden kann ?
Immer wenn nämlich ein Benutzer das Fenster nach rechts oder unten größer zieht, verschwindet die Zeichnung.
(hab schon api und google benutzt aber einfach nix gefunden :-( )
Na klar kann man das verhindern: jframe.setResizable(false);
Aber du musst halt schauen, warum deine Zeichnung überhaupt verschwindet! Hast du die Paint-Methode überschrieben?

Senior Sanchez
2006-11-05, 16:11:16
Dummerweise ist mir da auch nix bekannt, ich kenne nur einen ganz doofen Workaround.

Hänge an das JFrame einen ComponentListener und lasse ihn auf componentResized(ComponentEvent e) lauschen. Wenn das aufgerufen wird, weißte das die Größe verändert werden sollte und du setzt dann dort einfach wieder explizit die Größe die de haben willst.

Eine ziemlich doofe Lösung ist das, aber afaik gehts nicht anders.

Beim awt-Frame gibts ne Methode setResizable(), aber afaik geht das nicht beim JFrame.

Magnum
2006-11-05, 16:14:11
Beim awt-Frame gibts ne Methode setResizable(), aber afaik geht das nicht beim JFrame.Doch eigentlich schon! JFrame ist ja eine direkte Unterklasse von Frame!
siehe auch: http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/JFrame.html

Senior Sanchez
2006-11-05, 16:18:09
@Magnum
Ja, schon, aber ich meine mich zu erinnern, dass ich da mal nen großes Problem hatte und es hatte nicht funktioniert. Daher dieser Workaround.

Ich kann mich jetzt aber auch täuschen.

Shink
2006-11-06, 10:48:19
Gibt es irgendeine Möglichkeit zu verhindern, dass ein JFrame in der Größe verändert werden kann ?
Immer wenn nämlich ein Benutzer das Fenster nach rechts oder unten größer zieht, verschwindet die Zeichnung.
(hab schon api und google benutzt aber einfach nix gefunden :-( )

und wenn du das Fenster in den Hintergrund gibst, minimierst, aus dem Bildschirm schiebst und dann wieder hereinziehst ist das Bild noch da?
Ansonsten vergisst du wohl, dein Zeug in repaint() zu zeichnen.

Abnaxos
2006-11-06, 11:13:10
Ansonsten vergisst du wohl, dein Zeug in repaint() zu zeichnen.


repaint() ist die falsche Methode, wenn schon, dann paint(), aber
sollte man bei Swing-Komponenten nicht paint() überschreiben, sondern paintComponent().

Shink
2006-11-07, 08:28:41
repaint() ist die falsche Methode, wenn schon, dann paint(), aber
sollte man bei Swing-Komponenten nicht paint() überschreiben, sondern paintComponent().

Das stimmt zwar und ist viel verständlicher als das, was ich gepostet hab. Falsch ist meine Aussage trotzdem nicht.
Naja, egal...