07. september 2004 - 21:44Der er
8 kommentarer og 2 løsninger
slette en række efter sortering i en JTable
Hej
Jeg bruger Java's TableSorter klasse (http://java.sun.com/docs/books/tutorial/uiswing/components/example-1dot4/TableSorterDemo.java) til at sortere kolonnerne i min JTable. Jeg har dog et stort problem med at efter jeg har sorteret på en kolonne så passer mine rækker på skærmen ikke med element-nr i min model. Nogen ideer til hvordan jeg får opdateret min model, sådan at den passe med det visuelle man har på skærmen? Håber i forstår!
Forstår ikke lige hvorfor det er et problem, men i stedet for at sortere din JTable, så sorter din model og vis den i din JTable på nøjagtigt samme måde du gjorde inden du begyndte at sortere.
Der er ingen direkte sammenhæng mellem data's placering i tabellens model og deres placering selve tabellen (GUI), data's placering i tabellen styres via nogle indexer.
Jeg ved ikke om det hjælper på forståelsen, men hvis du betragter din model som et regneark(modelArk) og tabellen(tabelArk) som regneark nr. 2.
Hvis du forestiller dig at disse 2 regneark ligger oven på hinanden, så vil tabelArk når det vises FØRSTE gang afspejle data i modelArk, samtidig går der en usynlig tråd fra modelArkets celle A:1 til tabelArkets celle A:1, tråden (modelIndex) gør at uanset hvordan du flytter rundt på dine rækker /kolonner i tabellen, så vil tabelArket altid vide hvor i modelArket data er placeret.
Hvis dit problem skyldes at du skal gemme data i sorteret form, så hent dem fra tabellen i stedet for at gøre det fra modellen.
hmmm... okay, lige nu sortere jeg også på min model (undskyld havde jeg vidst ikke lige skrevet tydeligt). Men jeg har det problem, at når jeg bruger Java's TableSorter klasse, som virker ved at man klikker på en af headerne i tabellen hvorefter denne sorteres, så sorteres der i en ny Vector, hvorefter den laver en tablechanged. Visuelt bliver rækkerne også sorteret, men hvis jeg klikker på en række i tabellen, og skriver de data ud som repræsentere denne række i min model, så er dataerne ikke sorteret her
Nu har jeg ikke kigget på TableSorterDemo og jeg tvivler på at Sun sorterer deres model i den klasse (det ville bare ikke være særligt sandsynligt) og som du selv siger bliver dine data i tabellen sorteret.
Når du sorterer din tabel, bliver der ikke flyttet så meget som en eneste byte i din model, i modellen ligger data hvor de hele tiden har ligget
Jag har fundet ud af det, har modeficeret lidt i TableSorter-klassen, så den passer lidt mere til det jeg skal bruge den til... men lig et svar, så skal du få nogle point, som tak for besværet (ok med 30?)
Havde kalkuleret 50/50, når det nu skulle være, så det må jo være ok :-)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.