Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
ich arbeite an einem etwas komplexeren Projekt. Damit der zukünftige benutzer sehen kann das etwas 'im Hintergrund' passiert habe ich eine Progressbar eingefügt die 'interdemiate' laufen soll während die Datenabfrage läuft.
Leider springt sie aber nicht an. Woran könnte das liegen?
EDIT: Scheint nicht so zu klappen wie ichs verstanden hab. Kannst du mir das bitte erklären wie ich das in einen Thread auslager?
EDIT2: Hab zuerst versucht die Progressbar in einen Thread zu schreiben, was ja logischerweise nicht klappt da die SWING-Oberfläche sich ja trotzdem nciht refresehn kann (durch den Block von der Abfrage)
Habe dann versucht einfach die Abfrage in einen Thread auszulagern, hat aber leider auch nichts gebracht...
Wozu das komische hantieren mit der boolean Variable indeterminate?
An Deinem bisherigen Code lässt sich wenig erkennen, ausser dass Du - wie bereits angemerkt - mit Deiner Abfrage den EDT blockierst.
Nicht die ProgressBar muss in einen Thread, sondern längerwierige Aktionen (wie z.B. eine Datenbankabfrage) gehören in einen separaten Thread, damit diese nicht den EDT und damit die Aktualisierung der GUI blockieren.
mal so runtergeschrieben:
Java:
final JProgressBar bar = new JProgressBar();
...
new Thread(new Runnable() {
public void run() {
bar.setIndeterminate(true);
//langwierige Aktion simuliert mittels sleep
Thread.sleep(3000);
bar.setIndeterminate(false);
}
}).start();
Wozu das komische hantieren mit der boolean Variable indeterminate?
An Deinem bisherigen Code lässt sich wenig erkennen, ausser dass Du - wie bereits angemerkt - mit Deiner Abfrage den EDT blockierst.
Nicht die ProgressBar muss in einen Thread, sondern längerwierige Aktionen (wie z.B. eine Datenbankabfrage) gehören in einen separaten Thread, damit diese nicht den EDT und damit die Aktualisierung der GUI blockieren.
mal so runtergeschrieben:
Java:
final JProgressBar bar = new JProgressBar();
...
new Thread(new Runnable() {
public void run() {
bar.setIndeterminate(true);
//langwierige Aktion simuliert mittels sleep
Thread.sleep(3000);
bar.setIndeterminate(false);
}
}).start();
Hey Danke, hat jetzt ohne mucken und murren geklappt... hatte ausversehn einen prozess (der auch das Interface Blockiert hat) noch außerhalb des Threads stehen deshalb hat es nicht geklappt.