Folgende Situation:
Ich habe ein kleines GUI, komplett in Swing (kein AWT).
Die relevanten Teile sind:
Ein JFrame
welches eine JScrollPane enthält
welche eine JTextArea enthält.
Das GUI enthält eine Methode, die ein Update der Text Area erlaubt:
Auf Knopfdruck wird nun eine Methode einer anderen Klasse aufgerufen. Diese erledigt verschiedene recht zeitintensive Maßnahmen (> 2 Minuten) und soll daher regelmäßig den Fortschritt melden. Das tut sie, indem sie die oben beschriebene Methode addStatusLine aufruft.
Die gewünschte Situation wäre also:
Man drückt auf den Knopf, und in regelmäßigen Abständen wird der Status in die JTextArea geschrieben.
Die Situation ist aber leider die:
Man drückt auf den Knopf. Lange Zeit passiert nichts. Sobald die Verarbeitung durch ist erscheinen alle Statusmeldungen auf einmal.
Ich habe schon versucht die addStatusLine Methode so zu verändern, dass sie ein repaint anstößt, aber das machte auch keinen Unterschied:
Hat jemand einen Tip für mich, was hier das Problem sein könnte?
Ich habe ein kleines GUI, komplett in Swing (kein AWT).
Die relevanten Teile sind:
Ein JFrame
welches eine JScrollPane enthält
welche eine JTextArea enthält.
Das GUI enthält eine Methode, die ein Update der Text Area erlaubt:
Code:
static void addStatusLine( String statusline ){
statusarea.setText(statusarea.getText() + statusline + "\r\n");
}
Auf Knopfdruck wird nun eine Methode einer anderen Klasse aufgerufen. Diese erledigt verschiedene recht zeitintensive Maßnahmen (> 2 Minuten) und soll daher regelmäßig den Fortschritt melden. Das tut sie, indem sie die oben beschriebene Methode addStatusLine aufruft.
Die gewünschte Situation wäre also:
Man drückt auf den Knopf, und in regelmäßigen Abständen wird der Status in die JTextArea geschrieben.
Die Situation ist aber leider die:
Man drückt auf den Knopf. Lange Zeit passiert nichts. Sobald die Verarbeitung durch ist erscheinen alle Statusmeldungen auf einmal.
Ich habe schon versucht die addStatusLine Methode so zu verändern, dass sie ein repaint anstößt, aber das machte auch keinen Unterschied:
Code:
static void addStatusLine( String statusline ){
statusarea.setText(statusarea.getText() + statusline + "\r\n");
statusarea.repaint();
scrollpane.repaint();
jframe.repaint();
}
Hat jemand einen Tip für mich, was hier das Problem sein könnte?