Probleme mit Performance bei einer Tabelle

  • Themenstarter Themenstarter Gast2
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
G

Gast2

Gast
Hallo zusammen!

Ich habe ein Problem mit meiner Tabelle
Wenn ich eine Tabelle mit 60 Zeilen habe und scolle funktioniert das einwandfrei und ZÜGIG!!!!
Wenn ich die Zeilen sortiere (Klick auf die entsprechende Spaltenüberschrift), und dann scrolle funktioniert dies auch noch ZÜGIG. Doch sobald ich 800 Zeilen habe passiert folgendes. Vor dem Sortieren kann man ZÜGIG scrollen doch sobald eine Spalte sortiert wurde ist die Scrollpane wie blockiert und das Scrollen geht nur sehr langsam voran =(
!!!Lege 2 Dateien mit Sourcen bei.

tabelle 60 zeilen


tabelle 800 zeilen


Vielleicht kann mir jemand helfen und sieht was ich falsch gemacht habe

MFG John
 
Warum nimmst du nicht den standard TableSorter von Java 6 ? (Beispiel in den FAQ: JTable Tutorial)
Der funktioniert sehr gut, auch bei grossen Tabellen :wink:
 
1. weil ein Datum in einem String Format gespeichert ist "DD.MM.YYYY" und er diese dann nicht sortiert
2. Ich glaub das problem hatte ich auch mit Integer werte

aber es liegt ja nicht am sortieren oder?? Weil das sortieren geht ja einigermaßen zügig ...ich versteh nur nicht warum die JScrollpane blockiert ist, davor funktioniert sie ja auch einwandfrei.
Mich würde schon interessieren an was des liegt =) ich will ja was dazu lernen =)

EDIT : Ok ich hab scheiße gelabert =) habs mit einem eigenen Comparator hinbekommen, aber vielleicht findet ja noch jemand desn fehler in meinem beispiel.
 
nimm nem tablerowsorter.

irgendwie sortiert der auch sehr merkwürdig bei den spalten wo text drin steht...
 
nee er sortiert schon richtig...
wenn ich den tablesorter nimm sortier dieser nicht anders....
 
naja sortiere ich nach beschreibung, dann kommt diese liste
artikel0
artikel1
artikel100
artikel1...
artikel4
artikel400
...


das is richtig?


hab ma kurz in den code geschaut und nen systrace bei MEDSorter.filter() gemacht, dort wo der sortiert. und überraschung, der sortiert IMMER wenn man am scrollbalken was macht.
eigentlich sollte das sortieren doch einmal nachm click auf den tableheader reichen, oder?
 
mach mal bei MEDJTable in der getValueAt Methode das sorter.refresh() weg, dann läufts gut auch die 800er tabelle
 
ok danke ich versuchs mal!!!
aber was ist an der sortierung falsch ????
 
naja also wenn ich artikel sortiere, dann würde ich die so sortieren

artikel0
artikel1
artikel2
...

artikel10
artikel11
artikel12
...
artike100
artikel101
...


oder?
 
die zahlen gehören zum string und sind keine integer werte sortiert halt ganz normal danach...Aber das war nur ein beispiel, indem ich schnell die tabelle befüllen kann
er nimmt ja jeden einzelnen Buchstaben zum sortieren macht der tablesorter aber auch also kommt numal A10
vor A9

weil die 1 < 9 ist
 
ja is schon klar wie der das sortiert, aber wenn ich sowas sortieren würde, dann würd ich das auch nach nummern sortieren 🙂 sonst macht das sowieso kein sinn 🙂
 
Ich hab eine aktuelle Anwendung hier laufen.
Es ist eine Tabelle mit über hunderttausend Zeilen aus einer Datenbank.
In jeder Zeile ist auch ein Datum, als "Date" gespeichert.
Der TableSorter sortiert nach Datum in ein-zwei Sekunden.
Danach funktioniert das Scrollen genauso zügig wie vor dem Sortieren :wink:
tabelle.gif
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben