setUndecorated auf bereits sichtbares JFrame

JavaPhil

Mitglied
Hi,

setUndecorated(true) funktioniert ja nur wenn das JFrame noch nicht setVisible(true) oder pack() ist...

Gibt es eine Möglichkeit dieses Verhalten irgendwie anders hinzubekommen.
Ich möchte nämlich schon das mein Fenster die üblichen Dekorierungen (- [] X) hat und wenn es in den Vollbildmodus (vom nutzer) gewechselt wird, sollen diese jedoch verschwinden..

Thx
Philipp
 

JavaPhil

Mitglied
hmm sehr seltsam alles...

Das Fenster ist mein einzigstes daher wird alles beendet wenn ich dispose drauf aufrufe... Daher hab ich das ganze mal in einen thread gepackt jetzt schaltet es schon mal um..

blöderweise mag mein postRender den ich im Canvas3d aufrufe das Ganze überhaupt nicht...
er meint:

Exception occurred during Canvas3D callback:
java.lang.IllegalStateException: Cannot use Graphics2D object after dispose() is called
at javax.media.j3d.J3DGraphics2DImpl.flush(J3DGraphics2DImpl.java:122)
at java3d.View$2.postRender(View.java:179)
at javax.media.j3d.Renderer.doWork(Renderer.java:1407)
at javax.media.j3d.J3dThread.run(J3dThread.java:256)

hab das Graphics2D.xxx auch wärend des Umschaltens deaktiviert aber das hilft nix.. manchmal scheint es sogar einen Augenblick zu funktionieren aber dann rumms.
 

eRaaaa

Top Contributor
also ich meinte das mit dem dispose() nur, um schnell umzuschalten, danach natürlich wieder setVisible!

Java:
	    @Override
	    public void actionPerformed(ActionEvent e) {
		frame.dispose();
		frame.setUndecorated(frame.isUndecorated() ? false : true);
		frame.pack();
		frame.setVisible(true);
	    }

hat bei mir jedenfalls funktioniert, ob das die "feine Art" ist kann ich dir leider nicht sagen :D
 

JavaPhil

Mitglied
mach ich auch

frame.dispose();
frame.setUndecorated(true);
frame.setIgnoreRepaint(true);
frame.setResizable(false);
frame.setVisible(true);

ich denke es liegt bei mir irgendwie am Java3d Canvas3d rendering
 

Ebenius

Top Contributor
Sicher, dass da kein WindowListener am Frame hängt, der die Applikation beendet? Schalt doch mal einen Debugger an und mach Dir einen Brechpunkt in [c]Runtime.exit(int)[/c]. Dann schau Dir den StackTrace an, wenn sich die App beenden will.

Ebenius
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
VPChief Ein JFrame ohne setUndecorated(true); nicht verschiebbar machen. AWT, Swing, JavaFX & SWT 6
Developer_X Swing JFrame.setUndecorated(true); AWT, Swing, JavaFX & SWT 5
W setUndecorated(true) AWT, Swing, JavaFX & SWT 2
thE_29 KDE -- setUndecorated AWT, Swing, JavaFX & SWT 9
I setUndecorated geht nicht. AWT, Swing, JavaFX & SWT 3
Z setUndecorated(true) <-> win 2000 <-> win xp AWT, Swing, JavaFX & SWT 13
R setUndecorated und defaultLAF deco zur laufzeit AWT, Swing, JavaFX & SWT 2
H MouseAdapter Klasse nutzen wenn eigene Klasse bereits von anderer erbt AWT, Swing, JavaFX & SWT 13
A Swing Externe Klassen aufrufen und in einem bereits vorhandenen Container einfügen AWT, Swing, JavaFX & SWT 0
R Prüfen ob Form bereits geöffnet AWT, Swing, JavaFX & SWT 9
S Projekt: Meisterschaft - Abspeichern bereits gemachter Schritte AWT, Swing, JavaFX & SWT 2
S Ob IFrame bereits geöffnet herausfinden AWT, Swing, JavaFX & SWT 5
R Focus auf bereits geöffnetes Fenster setzen AWT, Swing, JavaFX & SWT 9
D Prüfen, ob Fenster bereits schon geöffnet ist AWT, Swing, JavaFX & SWT 1
B komponenten ein bereits angezeigtem JFrame hinzufügen AWT, Swing, JavaFX & SWT 3
N JTextPane und Text zu bereits existierenden Text hinzufügen? AWT, Swing, JavaFX & SWT 8
P nicht sichtbares JPanel / JFrame als Image speichern AWT, Swing, JavaFX & SWT 3
N Tastatur Zeichen einlesen ohne sichtbares Fenster AWT, Swing, JavaFX & SWT 8

Ähnliche Java Themen


Oben