wait()-Mehtode

ganonlight

Mitglied
Hallo,
ich will bei einem Programm ein Fenster unsichtbar machen und währenddessen soll beim Fenster nichts passieren, bis eine Methode das Fenster am Ende wieder sichtbar macht.
Dazu hab ich eben setVisible(false) benutzt und wollte die Methode wait() nehmen. Aber wenn ich this.wait() benutze kommt diese Exception: " Exception in thread "AWT-EventQueue-0" java.lang.IllegalMonitorStateException: current thread not owner
at java.lang.Object.wait(Native Method) "
Und ich versteh nicht, was das jetzt heißen soll, bzw. was ich falsch gemacht hab.
 

Marco13

Top Contributor
Na, mal nicht entmutigen. wait, notify und notifyAll müssen immer auf dem Objekt aufgerufen werden, auf das synchonisiert ist.
Code:
sychronized (a)
{
    a.wait(); // OK
}
Code:
sychronized (xxx)
{
    a.wait(); // *knirsch*
}

Allerdings stellt sich eher die Frage, ob das der geeigenete Ansatz für das Problem ist. Du solltest das ggf. nochmal genauer beschreiben...
 

ganonlight

Mitglied
Danke für die Antworten :) Hatte echt keine Ahnung von der Methode ^^".
Also das Fenster soll, wenn es unsichtbar gemacht wird, ein anderes Fenster öffnen. Und wenn dieses neue Fenster dann später geschlossen wird, soll das erste wieder sichtbar gemacht werden. Und währenddessen soll das erste nichts machen.

Ich habs jetzt nochmal probiert, und eigentlich klappts jetzt fast, aber das Fenster, das von dem ersten geöffnet werden soll, scheint nicht genug Zeit zu haben, die Buttons usw. zu adden, weils nämlich komplett leer ist. Es lässt sich nicht mal mehr normal schließen.. Kann ich da was machen?
 

ganonlight

Mitglied
Hab mir jetzt mal ein bisschen was zu JDialogs durchgelesen. Kann ein JDialog denn sonst das gleiche wie ein JFrame, oder gibt es da Unterschiede? Kann es zum Beispiel Jlabels mit Hintergrundbild haben und auch selbst ein Hintergrundbild haben?
 

Illuvatar

Top Contributor
Der einzige wirkliche Unterschied ist eigentlich, dass JDialogs nicht in der Taskleiste angezeigt werden. Normalerweise blendet man aber das "Hauptfenster" auch nicht aus, solange der Dialog angezeigt wird - dann ist dieses noch in der Taskleiste, und wenn man es anklickt erscheint der Dialog.
 

Illuvatar

Top Contributor
Natürlich. Ich weiß ja nicht, was du genau machen willst - ich hab nur etwas vermutet, und beschrieben wie sich Programme in so einem Fall üblicherweise verhalten.
Der Benutzer deines Programms wird dann eben auch dieses übliche Verhalten, für das der JDialog ausgelegt ist, erwarten.

Wenn du aber etwas anderes vorhast, dann ignorier das ;) Und es lässt sich bestimmt sowohl mit einem JFrame als auch einem JDialog lösen. Mit einem JDialog einfacher, wenn du aber einen Eintrag in der Taskleiste willst geht das nicht. Dann musst du zu wait/notify zurück (oder java.util.concurrent).
 

ganonlight

Mitglied
Ok, ich habs jetzt als JDialog, aber ich habe 2 Probleme:
1. Also das Programm sieht ganz grob so aus: auf meinem Hauptfenster habe ich JButtons, die sich bewegen. Diese Buttons bewegen sich immer hin un her und wenn sie etwas bestimmtes berühren, wird das zweite Fenster aufgeufen. Deshalb hatte ich vorher das Problem, dass das 2. Fenster ganz oft aufgerufen wurde. Das Problem habe ich zwar nicht mehr, aber die Buttons bewegen sich, nachdem der Dialog aufgerufen wurde, immer noch, nur rufen sie das zweite Fenster nicht erneut auf. Kann ich das irgendwie stoppen?
2. Ich kann den Dialog irgendwie mit dem Exit Button rechts oben nicht schließen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
I Exception bei Button mit wait() und notifyAll() Java Basics - Anfänger-Themen 3
O Threads - Synchronize(), join(), wait(), notify(), yield() Java Basics - Anfänger-Themen 6
ralfb1105 Frage zu Thread Synchronisation mit wait() und notify() Java Basics - Anfänger-Themen 3
M notify und wait Java Basics - Anfänger-Themen 1
M Threads synchronized und wait Java Basics - Anfänger-Themen 2
D Stack-Objekt - LIFO - wait(); notify(); Java Basics - Anfänger-Themen 0
D Probleme mit wait(), notify() Java Basics - Anfänger-Themen 0
M wait/notify bei Socket Java Basics - Anfänger-Themen 4
BlueFox Greenfoot wait() Java Basics - Anfänger-Themen 10
Luk10 Monitor: wait() und notify() Java Basics - Anfänger-Themen 8
A wait() problem Java Basics - Anfänger-Themen 3
S Threads: wait() und notify() Java Basics - Anfänger-Themen 11
T meinThread.wait(); wirft immer Exeption & hat kein Effekt Java Basics - Anfänger-Themen 15
S bin zu blöd für threads - wait, notify, synchronized Java Basics - Anfänger-Themen 11
R wait() in synchronized - Block oder nicht? Java Basics - Anfänger-Themen 4
B Problem: wait() -> notify() Java Basics - Anfänger-Themen 4
M Threads, wait() und notify() Java Basics - Anfänger-Themen 10
G Threads steuern mit wait und notify Java Basics - Anfänger-Themen 2
M wait() sleep() geht nicht wirklich Java Basics - Anfänger-Themen 3
P wait und notify oder wie soll ich es lösen Java Basics - Anfänger-Themen 2
vogella *Gelöst *Im Programm warten (wait()) Java Basics - Anfänger-Themen 2
D Wait und Image Java Basics - Anfänger-Themen 3
U wait Java Basics - Anfänger-Themen 2
O Problem bei der Synchronisierung von Threads (wait&notif Java Basics - Anfänger-Themen 4
C java.util.Timer und wait() oder so was Java Basics - Anfänger-Themen 3
Z Mehtode bei Start des Programms ausführen (Klassen übergreifend) Java Basics - Anfänger-Themen 12
D Getter Mehtode Unsicher Java Basics - Anfänger-Themen 6
B Methode als variable an andere Mehtode übergeben Java Basics - Anfänger-Themen 17
P Anzahl von Argu einer Mehtode Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben