Hallo,
kürzlich habe ich angefangen GUIs in Java zu programmieren. Nun habe ich im Hintergrund von meinem Programm eine recht lange Schleife, die auf Knopfdruck ausgelöst wird. Während diese Schleife läuft friert die GUI ein - wieso ist mir klar. Ich weiß auch nach ein bisschen Recherche, dass man dieses Problem mit einem extra Worker-Thread umgehen kann. Prinzipiell funktioniert das bei mir auch wie folgt:
Ich habe eine "Worker"-Class mit einer "run()"-Method, in der meine lange Schleife steht. In meiner ActionListener-Class rufe ich die Schleife dann wie folgt auf:
Soweit funktioniert alles.
Jetzt möchte ich jedoch das Verhalten in meiner Worker-Class ändern, indem ich vom ActionListener Parameter übergeben lasse. An dieser Stelle hängts bei mir noch.
Wie kan ich also der "run()"-Method in der Worker-Class Variablen übergeben? Dazu konnte ich leider noch nichts Brauchbares im Netz finden.
Vielen Dank im Voraus!
MfG,
Jocbe
kürzlich habe ich angefangen GUIs in Java zu programmieren. Nun habe ich im Hintergrund von meinem Programm eine recht lange Schleife, die auf Knopfdruck ausgelöst wird. Während diese Schleife läuft friert die GUI ein - wieso ist mir klar. Ich weiß auch nach ein bisschen Recherche, dass man dieses Problem mit einem extra Worker-Thread umgehen kann. Prinzipiell funktioniert das bei mir auch wie folgt:
Ich habe eine "Worker"-Class mit einer "run()"-Method, in der meine lange Schleife steht. In meiner ActionListener-Class rufe ich die Schleife dann wie folgt auf:
Java:
Thread myThread = new Thread(new Worker());
myThread.setDaemon(true);
myThread.start();
Soweit funktioniert alles.
Jetzt möchte ich jedoch das Verhalten in meiner Worker-Class ändern, indem ich vom ActionListener Parameter übergeben lasse. An dieser Stelle hängts bei mir noch.
Wie kan ich also der "run()"-Method in der Worker-Class Variablen übergeben? Dazu konnte ich leider noch nichts Brauchbares im Netz finden.
Vielen Dank im Voraus!
MfG,
Jocbe