Ich hab da nochmal ein Prob mit dem TableRowSorter.
Mein Programm liest etwas in einem Seperaten Thread aus, berechnet dort auch etwas und schickt dann an die Tabelle einen Vector, der dort einfach hinzugefügt wird. In meinem extra Thread läuft das so:
Im Thread gibts ne Schleife, die ca. 1000 mal durchläuft und auch soviele neuen Zeilen in die Tabelle der GUI schreibt. Das funktioniert auch alles sehr schön, nur gibts jetzt ein Problem mit dem RowSorter. Die Tabelle wird rasch sehr groß und ab einer bestimmten größe fängt die GUI an zu haken und nicht mehr zu reagieren, die Informationen des Arbeiter-Threads kommen schneller als der RowSorter die Tabelle sortieren kann (vermute ich). Ist kein RowSorter auf der Tabelle, ist die GUI ganz geschmeidig ... reagiert sofort wenn man auf eine Zeile klickt, oder scrollt. Sobald der rowSorter aktiv ist, hakt es irgendwann.
Jemand eine Idee, wie ich das irgendwie besser hinbekomme ?
Noch kurz zur Implementation der Methode addaRow(): dort wird nur der dataVector der Tabelle um einen Eintrag erweitert und danach wird der TabelRowSorter neu gesetzt. Der muss nach jeder Änderung des DataVectors neu gesetzt werden ...
Mein Programm liest etwas in einem Seperaten Thread aus, berechnet dort auch etwas und schickt dann an die Tabelle einen Vector, der dort einfach hinzugefügt wird. In meinem extra Thread läuft das so:
Java:
//Thread arbeitet ....
EventQueue.invokeLater(new Runnable() {
public void run() {
//otm ist ein String Vector
model.addaRow(otm);
}
}
});
Im Thread gibts ne Schleife, die ca. 1000 mal durchläuft und auch soviele neuen Zeilen in die Tabelle der GUI schreibt. Das funktioniert auch alles sehr schön, nur gibts jetzt ein Problem mit dem RowSorter. Die Tabelle wird rasch sehr groß und ab einer bestimmten größe fängt die GUI an zu haken und nicht mehr zu reagieren, die Informationen des Arbeiter-Threads kommen schneller als der RowSorter die Tabelle sortieren kann (vermute ich). Ist kein RowSorter auf der Tabelle, ist die GUI ganz geschmeidig ... reagiert sofort wenn man auf eine Zeile klickt, oder scrollt. Sobald der rowSorter aktiv ist, hakt es irgendwann.
Jemand eine Idee, wie ich das irgendwie besser hinbekomme ?
Noch kurz zur Implementation der Methode addaRow(): dort wird nur der dataVector der Tabelle um einen Eintrag erweitert und danach wird der TabelRowSorter neu gesetzt. Der muss nach jeder Änderung des DataVectors neu gesetzt werden ...