Programm friert ein wegen einem JAVA Prozess?

1 Antwort

Ich bin gerade unterwegs und kann den Code nicht ausprobieren. Schon so lange her, dass ich Swing benuttz habe (wieso eigentlich Swing?)

Aber wenn die Oberfläche einfriert, dann liegt das wohl einfach daran, dass der Event Dispatch Thread mit irgendwas beschäftigt ist, was er nicht tun sollte. Der Event Dispatch Thread ist der Thread, welcher die Oberfläche zeichnet und auf Events reagiert.

Dieser Thread führt aus, was du in der Action Performed Methode machst. Dort wird irgendwo was verzögert (ich kann mir vorstellen, dass es da ne Eingabe oder sowas gibt, auf die gewartet werden muss?! Hab nur die Streams beim überfliegen gesehen). Wenn der Thread dann also an einer Stelle hängen bleibt, dann friert die Oberfläche ein.

Die Lösung ist: Langanhaltende Aufgaben (wie beispw. Netzwerkzugriff) oder das Warten auf ein Ereignis in einen neuen Thread auszulagern. Gibt ne Klasse, die sich SwingWorker nennt und die du dir vllt mal anschauen kannst oder du startest einfach einen neuen Thread bzw. schreibst den Code so um, dass der Event Dispatch Thread nicht mehr blockiert.


Grüße!


User16387 
Beitragsersteller
 24.10.2015, 18:22

Danke für die schnelle antwort. Ich werde mir diesen:"SwingWorker" mal anschauen und wens nich geht werde ich mal schauen ob ich das nicht irgenwie als neben Task arbeiten lassen kann.

Mit freundlichen Grüßen

Marco MC!

0