Hallo!
Ich ärger mich gerade gewaltig mit modalen Fenstern rum.
Hintergrund ist folgendes:
In meinem Programm werden zur Laufzeit des öfteren länger dauernde Methoden ausgeführt. Während dieser Zeit möchte ich nicht den Eindruck erwecken, dass sich das Programm aufgehängt hat und darum den aktuellen Status anzeigen lassen - ähnlich wie die Willkommensbildschirme von Word und co.
Natürlich möchte ich auch nicht, dass während diesen Berechnungen der User die Möglichkeit hat, sich doch noch eine andere Funktion auszusuchen - darum sollen die Fenster modal angezeigt werden.
Dazu habe ich mir eine Klasse MessageDialog erstellt, die JDialog erweitert.
Außerdem hab ich den konstruktor so angelegt, dass er über super (parent, modal) für das modale Anzeigen des Fensters sorgt.
Allerdings wird bei setVisible (true) dann auch der Eltern-Prozess angehalten und genau das möchte ich nicht.
In diesem Post gab es den Vorschlag, die setVisible Methode in einem eigenen Thread auszuführen. Das führt bei mir dazu, dass zwar der Hauptprozess weiter läuft, ich aber das Fenster mit dem Status gar nicht sehe.
Der Code dafür sieht dann so aus:
Kann mir jemand weiter helfen?
Danke schonmal!
Heut
Ich ärger mich gerade gewaltig mit modalen Fenstern rum.
Hintergrund ist folgendes:
In meinem Programm werden zur Laufzeit des öfteren länger dauernde Methoden ausgeführt. Während dieser Zeit möchte ich nicht den Eindruck erwecken, dass sich das Programm aufgehängt hat und darum den aktuellen Status anzeigen lassen - ähnlich wie die Willkommensbildschirme von Word und co.
Natürlich möchte ich auch nicht, dass während diesen Berechnungen der User die Möglichkeit hat, sich doch noch eine andere Funktion auszusuchen - darum sollen die Fenster modal angezeigt werden.
Dazu habe ich mir eine Klasse MessageDialog erstellt, die JDialog erweitert.
Außerdem hab ich den konstruktor so angelegt, dass er über super (parent, modal) für das modale Anzeigen des Fensters sorgt.
Allerdings wird bei setVisible (true) dann auch der Eltern-Prozess angehalten und genau das möchte ich nicht.
In diesem Post gab es den Vorschlag, die setVisible Methode in einem eigenen Thread auszuführen. Das führt bei mir dazu, dass zwar der Hauptprozess weiter läuft, ich aber das Fenster mit dem Status gar nicht sehe.
Der Code dafür sieht dann so aus:
Code:
final MessageDialog W = new MessageDialog (this, true);
W.setMessage("test");
W.setAlwaysOnTop(true);
new Thread () {
public void run () {
W.setVisible(true);
}
}.start();
Kann mir jemand weiter helfen?
Danke schonmal!
Heut