Hallo,
man kann ja per JTable#rowSorter#setFilter() in einem Table automatisch filtern lassen. Ich habe jetzt das Problem, dass ein paar der Daten, nach denen gefiltert werden soll, gar nicht als Spalten im Table dabei sind.
Konkret heisst das: Mein TableModel ist ne Liste von Film-Objekten. Die meisten Attribute eines solchen Filmes sind als Spalten im Table drinnen. Allerdings hat ein Film auch eine Liste von Schauspielern, und diese wird nicht im Table angezeigt, bzw. die ganzen TableModel Methoden wie getClassForColumn usw. definieren dafür nix. Sie sind also qausi nicht wirklich im TableModel, nur intern in jedem Film-Objekt.
Jetzt soll er halt aber auch danach suchen, und nach etwas filtern was gar nicht angezeigt wird. Und meine Frage ist jetzt, was geht leichter/schneller/eleganter/besser:
1) Die Filterung komplett selber übernehmen, d.h. direkt auf der Liste meiner Filme arbeiten und temporäre Listen erstellen usw.
2) Die Infos über die Schauspieler irgendwie ins TableModel "hineinfaken", d.h. das TableModel irgendwie so schreiben, dass er zwar keine Spalte für Schauspieler anzeigt, aber beim Nutzen von dem vorgefertigten Filter-Zeugs das trotzdem mit berücksichtigt wird.
Ich hab noch nie mit Filtern und Suche auf JTables gearbeitet und weiss nicht genau wie er das eigentlich bewerkstelligt, also welche Methoden er da heranzieht usw. Jetzt ist die Frage ob man die Liste einfach rein nimmt und die Spalte auf width = 0 stellt. Aber hier frag ich mich inwiefern der Mechanismus eigentlich auf Listen arbeiten kann? Kann man überhaupt als Spalten-Klasse eine Liste übergeben? Und kommt der damit klar, durchsucht er dann jedes Element?
Ich hab das alles noch nicht selber versucht da ich grad in ner schwierigen Code-Phase stecke, und jetzt nicht gerne im existierenden Code rumpfuschen will.
Also freu mich über Tips wie ich das nun am besten machen kann!
man kann ja per JTable#rowSorter#setFilter() in einem Table automatisch filtern lassen. Ich habe jetzt das Problem, dass ein paar der Daten, nach denen gefiltert werden soll, gar nicht als Spalten im Table dabei sind.
Konkret heisst das: Mein TableModel ist ne Liste von Film-Objekten. Die meisten Attribute eines solchen Filmes sind als Spalten im Table drinnen. Allerdings hat ein Film auch eine Liste von Schauspielern, und diese wird nicht im Table angezeigt, bzw. die ganzen TableModel Methoden wie getClassForColumn usw. definieren dafür nix. Sie sind also qausi nicht wirklich im TableModel, nur intern in jedem Film-Objekt.
Jetzt soll er halt aber auch danach suchen, und nach etwas filtern was gar nicht angezeigt wird. Und meine Frage ist jetzt, was geht leichter/schneller/eleganter/besser:
1) Die Filterung komplett selber übernehmen, d.h. direkt auf der Liste meiner Filme arbeiten und temporäre Listen erstellen usw.
2) Die Infos über die Schauspieler irgendwie ins TableModel "hineinfaken", d.h. das TableModel irgendwie so schreiben, dass er zwar keine Spalte für Schauspieler anzeigt, aber beim Nutzen von dem vorgefertigten Filter-Zeugs das trotzdem mit berücksichtigt wird.
Ich hab noch nie mit Filtern und Suche auf JTables gearbeitet und weiss nicht genau wie er das eigentlich bewerkstelligt, also welche Methoden er da heranzieht usw. Jetzt ist die Frage ob man die Liste einfach rein nimmt und die Spalte auf width = 0 stellt. Aber hier frag ich mich inwiefern der Mechanismus eigentlich auf Listen arbeiten kann? Kann man überhaupt als Spalten-Klasse eine Liste übergeben? Und kommt der damit klar, durchsucht er dann jedes Element?
Ich hab das alles noch nicht selber versucht da ich grad in ner schwierigen Code-Phase stecke, und jetzt nicht gerne im existierenden Code rumpfuschen will.
Also freu mich über Tips wie ich das nun am besten machen kann!