Hallo,
ich möchte in meinem Programm ein Textlabel während eines ausgelagerten Prozesses in einem Thread verändern.
Folgende Systematik verbirgt sich im Programm:
Bei Betätigung des Buttons Start werden nachfolgend einige Threads gestartet.
Den Zustandswechel zwischen den Threads will ich in ein Textlabel anzeigen lassen.
Folgender, teils Pseudocode liegt bereits vor:
Bei Betätigung eines Buttons wird dessen actionListener folgenden Code ausführen:
Im Anschluss daran sollen dann noch andere, ähnliche Threads ausgeführt werden.
So schaut meine beispielhafte Implementierung des packThread aus:
Mein Ansatz war bisher, dass ich den Statuswechsel direkt im try Abschnitt des jeweiligen Threads vollziehen wollte. So funktioniert es ja schließlich auch mit dem System.out.println, jedoch nicht mit dem setText() Argument meines Labels.
Wie kann ich mein Code dahingehend umbauen, sodass vor und nach jedem Thread-Aufruf das Textlabel verändert werden kann?
ich möchte in meinem Programm ein Textlabel während eines ausgelagerten Prozesses in einem Thread verändern.
Folgende Systematik verbirgt sich im Programm:
Bei Betätigung des Buttons Start werden nachfolgend einige Threads gestartet.
Den Zustandswechel zwischen den Threads will ich in ein Textlabel anzeigen lassen.
Folgender, teils Pseudocode liegt bereits vor:
Bei Betätigung eines Buttons wird dessen actionListener folgenden Code ausführen:
Java:
packThread pt = new packThread(StrInputPath);
pt.start();
while (pt.isAlive()==true)
{
try {
Thread.sleep(200);
} catch (InterruptedException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
Im Anschluss daran sollen dann noch andere, ähnliche Threads ausgeführt werden.
So schaut meine beispielhafte Implementierung des packThread aus:
Java:
class packThread
extends Thread
{
String StrInput = null;
public packThread(String StrInputFile){
this.StrInput = StrInputFile;
}
public void run()
{
try {
System.out.println("Bilder werden gezippt");
FolderZiper.zipFolder(StrInput, StrInput+".zip");
System.out.println("Bilder wurden gezipp");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Mein Ansatz war bisher, dass ich den Statuswechsel direkt im try Abschnitt des jeweiligen Threads vollziehen wollte. So funktioniert es ja schließlich auch mit dem System.out.println, jedoch nicht mit dem setText() Argument meines Labels.
Wie kann ich mein Code dahingehend umbauen, sodass vor und nach jedem Thread-Aufruf das Textlabel verändert werden kann?