PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Zugriff JTable



nahum
02-08-2010, 23:06
Hallo zusammen
Ich möchte mit einer JTable Daten aus einer DB darstellen. Das GUI hat auch noch diverse Filterfunktionen mit denen der Benutzer die Datenmenge in der JTable einschränken kann.
Wenn nun die Daten eingeschränkt werden, soll die JTable nur noch die gefilterten Daten enthalten. Dass die JTable dies auch tut, hab ich nur so hingekriegt, dass ich die JTable jedesmal lösche und mit dem gefilterten Daten-Array neu erzeuge.

Geht das nicht auch einfacher? Gibt’s es eine Möglichkeit wie ich der bestehenden JTable das neue Daten-Array übergebe und diese dies übernimmt und anzeigt?

Wäre Dankbar um etwas Hilfe, denn irgendwie scheint das mit löschen und neu erzeugen ne "Holzhackermethode" zu sein und kein "schönes" Java-coding.

Besten Dank schon mal

nahum

John W
03-08-2010, 13:36
Mir fallen zwei Möglichkeiten ein:
1. getModel().setRowCount(0) aufrufen und die Daten neu hinzuzufügen.
2. Einen RowSorter erstellen (siehe Javadoc der JTable)
Ersteres dürfte einfacher sein, kostet allerdings Performance (kann man sicher auch noch anderweitig optimieren, sodass dies nicht mehr so ins Gewicht fällt).

mwanaheri
04-08-2010, 06:24
Da die Daten ja im TableModel vorgehalten werden, denke ich, dass dort der beste Ort zum Eingreifen ist.
Eine Möglichkeit ist, das TableModel so zu erweitern, dass es eine Liste mit den Originaldaten enthält und eine Liste mit den gefilterten Daten, die dann angezeigt werden. Natürlich muss dann auch das Filtern im TableModel stattfinden.
Alternativ kannst du die vollständige Liste auch sonstwo halten und filtern und dann mit der gefilterten Liste ein neues Modell bauen. Anschließend einfach JTable.setModel(new tableModel(gefilterteListe)). Sollte auch gehen.