Swing Inhalt einer JTable aktualisieren und filten nach Feldern die nicht in der Tabelle sind

Curry

Aktives Mitglied
Moin Moin!

Ich bin dabei ein Programm zum Verwalten von Artikeln (PDF-Dateien) schreiben. Doch komme ich gerade nicht weiter.

Ich möchte die Artikel in einer JTable anzeigen (Titel, Autor, Erscheinungsdatum). Die PDF-Dateien der Artikel sind in einem Verzeichnis meiner Festplatte gespeichert (Dateiname ist eine eindeutige ID). Die restlichen Informationen zu den Artikeln werden aus einer externen Datenbank gelesen. Soweit gibt es kein Problem.

Aber, unter der Tabelle habe ich aber ein JButton(UPDATE), bei dessen Aktivierung das Verzeichnis der Festplatte neu ausgelesen wird und die restlichen Daten erneut von der externen Datenbank geladen werden. Daraufhin (neue PDF-Dateien hinzufügen oder nicht mehr vorhandene entfernen) soll sich die JTable aktualisieren.

Des Weiteren möchte ich die Tabelle filtern, was kein Problem ist, wenn ich nach Feldern der Tabelle filtern möchte. Ich möchte aber auch gerne nach Eigenschaften der Artikel filtern, die nicht in der Tabelle angezeigt werden (z.B. Zusammenfassung).
Hat jmd. einen Tipp wie man sowas umsetzt?

Bisher habe ich eine Klasse DataModel, die in einer Hashtable die Artikel als value unter der ID als key speichert. Mithilfe dieser Hashtable füttere ich dann das DefaultTableModel. Wäre es vielleicht sinnvoller ein eigenes TableModel zu schreiben und auf die Klasse DataModel zu verzichten?
Ich freue mich auf eure Tipps!
 
Hallo,
ich würde in der tat empfehlen ein eigenes TableModel zu schreiben. Als Basis dafür empfehle ich von der Klasse AbstractTableModel abzuleiten dann hat man schonmal das drum herum (Listener/Eventhandling) und muss erstmal nur noch wenige Methoden überschreiben.

Ich glaube es sind:
public int getRowCount();
public int getColumnCount();
public Object getValueAt(int row, int column);

Eigene Filtermethoden können leicht selbst hinzugefügt, und mit der GUI verknüpft werden. In dem Model nutze ich meist eine Datenbean-Instanz pro Zeile, abgelegt in einer ArrayList. Natürlich gibt es auch andere Wege die Daten zu verwalten.

Das Datenbean kann natürlich auch Attribute haben die man nicht in der Tabelle anzeigt aber doch an die Tabellenzeile knüpfen will (z.B. zum Sortieren, Suchen oder Filtern).

Grüße Hogli
 

Neue Themen


Zurück
Oben