Hallo,
Ich habe das Beispiel von http://java.sun.com/products/jfc/tsc/articles/treetable1/index.html als Basis für meine JTreeTable verwendet.
Jetzt wollte ich die JTreeTable ableiten und mit Sortfunktionen erweitern. Dazu packe ich das einfache Modell in einen Adapter. Der Adapter biegt die Indizies so um, dass nach dem Sortieren die richtigen Zellen aus dem einfach Modell geladen werden.
Wenn ich das sortierte Modell der TreeTable übergebe, dann klappt es. Wird aber durch einen Mouse-Event das Sortieren angestossen, so bleibt die Tabelle, so wie sie war.
Ich dachte fireTableDataChanged ist dafür da - aber es wird nicht im Model (über den Adapter) neu nach den Werten gefragt.
Auch wenn ich ...
... schreibe, dann passiert nix im Modell.
Ich hab einen Listener noch dazu gepackt -> Seltsam! dieser reagiert. Die einzige Möglichkeit, die ich bisher gesehen hab, war die Neuerstellung eines Models und das alte zu überschreiben, dann hat er auch die Werte neu gelesen. Ist aber sehr zeitaufwendig - und ich habe bereits ein Model. Ich halte es also für nicht clever einen Clone zu bauen nur um JTable dazu zukriegen, die Werte vom Modell einzu lesen.
Kann mir jemand sagen, wie ich JTable, dazu bekomme, dass es das Model wirklich neu liest?
Danke fürs Lesen und Antworten
Gruß Clemens
PS: Hat noch jemand eine Ahnung, wie man den Event des Spalten-Drag-Drops abfängt? Welcher Listener ist dafür gut?
Ich habe das Beispiel von http://java.sun.com/products/jfc/tsc/articles/treetable1/index.html als Basis für meine JTreeTable verwendet.
Jetzt wollte ich die JTreeTable ableiten und mit Sortfunktionen erweitern. Dazu packe ich das einfache Modell in einen Adapter. Der Adapter biegt die Indizies so um, dass nach dem Sortieren die richtigen Zellen aus dem einfach Modell geladen werden.
Wenn ich das sortierte Modell der TreeTable übergebe, dann klappt es. Wird aber durch einen Mouse-Event das Sortieren angestossen, so bleibt die Tabelle, so wie sie war.
Ich dachte fireTableDataChanged ist dafür da - aber es wird nicht im Model (über den Adapter) neu nach den Werten gefragt.
Code:
((TreeTableModelAdapter) this.treeTableSortable.getModel()).fireTableChanged(
new TableModelEvent(
this.treeTableSortable.getModel(),
0,
this.treeTableSortable.getModel().getRowCount(),
TableModelEvent.ALL_COLUMNS,
TableModelEvent.UPDATE)
);
Ich hab einen Listener noch dazu gepackt -> Seltsam! dieser reagiert. Die einzige Möglichkeit, die ich bisher gesehen hab, war die Neuerstellung eines Models und das alte zu überschreiben, dann hat er auch die Werte neu gelesen. Ist aber sehr zeitaufwendig - und ich habe bereits ein Model. Ich halte es also für nicht clever einen Clone zu bauen nur um JTable dazu zukriegen, die Werte vom Modell einzu lesen.
Kann mir jemand sagen, wie ich JTable, dazu bekomme, dass es das Model wirklich neu liest?
Danke fürs Lesen und Antworten
Gruß Clemens
PS: Hat noch jemand eine Ahnung, wie man den Event des Spalten-Drag-Drops abfängt? Welcher Listener ist dafür gut?