Hallo,
ich habe eine kleine Anwendung die überwiegend verschiedene Dinge in einem großen Textfenster ausgibt. Hauptsächlich werden dort Sachen aufgelistet, die Daten dazu werden aus einem Vektorcontainer gelesen. Oftmals wird dabei auf mehr als 500 Datenobjekte zugegriffen, es entstehen i.d.R. Logs in Tabellenform. Meine Ausgabe hatte ich bis jetzt ganz simpel in der Console nach dem Schema:
Das geht auf der Konsole eigentlich sehr flott, der Zugriff auf den Datencontainer an sich ist also offenbar schnell genug(sicher kann man statt Vector auch hier noch was schnelleres nehmen...).
Nun mache ich im Prinzip genau das gleiche in meiner kleinen SWT Gui Anwendung:
Das ganze dauert ewig, vor allem sieht man während der Verarbeitung keinen Fortschritt obwohl ich "append" benutze. Das Ergebnis, also z.B. 500 Zeilen "Bla Bla", wird am Ende auf einen Schlag angezeigt anstatt es zeilenweise aufzubauen. In der Konsole hingegen wird während die while Schleife noch läuft wird immer sofort die Ausgabe der jeweiligen Zeile gemacht.
Wie krieg ich das in meinem SWT Fenster hin, zumindest so das der Benutzer zusehen kann während sein log erstellt wird und man nicht nach ner halben Minute denkt das Programm wäre abgestürzt...?
ich habe eine kleine Anwendung die überwiegend verschiedene Dinge in einem großen Textfenster ausgibt. Hauptsächlich werden dort Sachen aufgelistet, die Daten dazu werden aus einem Vektorcontainer gelesen. Oftmals wird dabei auf mehr als 500 Datenobjekte zugegriffen, es entstehen i.d.R. Logs in Tabellenform. Meine Ausgabe hatte ich bis jetzt ganz simpel in der Console nach dem Schema:
Code:
while(myiterator.hasnext())
System.out.println(myiterator.next().getMyText());
Nun mache ich im Prinzip genau das gleiche in meiner kleinen SWT Gui Anwendung:
Code:
Text logwindow = new Text(shell, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
while(myiterator.hasnext())
logwindow.append(myiterator.next().getMyText()+"\n");
Das ganze dauert ewig, vor allem sieht man während der Verarbeitung keinen Fortschritt obwohl ich "append" benutze. Das Ergebnis, also z.B. 500 Zeilen "Bla Bla", wird am Ende auf einen Schlag angezeigt anstatt es zeilenweise aufzubauen. In der Konsole hingegen wird während die while Schleife noch läuft wird immer sofort die Ausgabe der jeweiligen Zeile gemacht.
Wie krieg ich das in meinem SWT Fenster hin, zumindest so das der Benutzer zusehen kann während sein log erstellt wird und man nicht nach ner halben Minute denkt das Programm wäre abgestürzt...?