Hallo,
dieses Thema gibt es zwar schon einige Male hier im Forum, allerdings habe ich für mein Problem bisher trotzdem keine Lösung gefunden...
Hier erst einmal mein Code-Schnipsel:
In der Methode requestInvoices() wird ein Serverrequest zusammengebaut und eine weitere Methode execute() aufgerufen.
Das funktioniert soweit auch alles sehr gut mit der Progressbar.
Nun möchte ich aber nicht immer explizit die Progressbar starten sobald ich eine Serveranfrage stelle.
Daher dachte ich mir ich verlagere das Starten und Stoppen der Progressbar direkt in die Funktion die alleine für den Serverrequest zuständig ist, die execute Methode.
So und hier beginnt mein Problem, denn sobald ich das Starten und Stoppen der Progressbar in die execute() Methode verlagere wird die Progressbar nicht mehr angezeigt.
Der worker ist von SwingWorker abgeleitet.
Ich habe auch schon versucht das Starten der Progressbar in einen eigenen Thread auszulagern, funktioniert auch nicht....
Oder beides in einem eigenen Thread, geht auch nicht....
Vielleicht könnte mir Jemand hier weiterhelfen.
Als letzte Info vielleicht noch, dass die Hauptapplikation in einem eigenen Thread gestartet wird -> invokeLater(new Runnable()
Keine Ahnung, ob das eventuell von Belang sein könnte.
Ebenfalls arbeite ich nicht mit Eclipse oder JFace usw.
Es ist eine Applikation die mit Netbeans erstellt wird.
Gruß Jens
dieses Thema gibt es zwar schon einige Male hier im Forum, allerdings habe ich für mein Problem bisher trotzdem keine Lösung gefunden...
Hier erst einmal mein Code-Schnipsel:
Code:
Main.getMainWindow().startProgressBar();
Thread t = new Thread()
{
public void run()
{
requestInvoices();
Main.getMainWindow().stopProgressBar();
}
};
t.start();
In der Methode requestInvoices() wird ein Serverrequest zusammengebaut und eine weitere Methode execute() aufgerufen.
Das funktioniert soweit auch alles sehr gut mit der Progressbar.
Nun möchte ich aber nicht immer explizit die Progressbar starten sobald ich eine Serveranfrage stelle.
Daher dachte ich mir ich verlagere das Starten und Stoppen der Progressbar direkt in die Funktion die alleine für den Serverrequest zuständig ist, die execute Methode.
So und hier beginnt mein Problem, denn sobald ich das Starten und Stoppen der Progressbar in die execute() Methode verlagere wird die Progressbar nicht mehr angezeigt.
Code:
public Response execute(Request requestObject) throws ServerException
{
if(Main.getMainWindow() != null)
{
Main.getMainWindow().startProgressBar();
}
worker = new BackgroundWorker(requestObject, this);
Thread t = new Thread()
{
public void run()
{
worker.execute();
}
};
t.start();
while(worker.isDone() == false)
;
return worker.getTempResponse();
}
Der worker ist von SwingWorker abgeleitet.
Ich habe auch schon versucht das Starten der Progressbar in einen eigenen Thread auszulagern, funktioniert auch nicht....
Oder beides in einem eigenen Thread, geht auch nicht....
Vielleicht könnte mir Jemand hier weiterhelfen.
Als letzte Info vielleicht noch, dass die Hauptapplikation in einem eigenen Thread gestartet wird -> invokeLater(new Runnable()
Keine Ahnung, ob das eventuell von Belang sein könnte.
Ebenfalls arbeite ich nicht mit Eclipse oder JFace usw.
Es ist eine Applikation die mit Netbeans erstellt wird.
Gruß Jens