Irgendwie habe ich anscheinend eine Denkblockade ...
Es muss doch irgendwie möglich sein, bescheid zu bekommen, wenn eine Tabellen-Zelle vom User geändert wurde.
Jetzt wird sich jemand fragen, warum ich das wissen will, da ja die JTable automatisch das zugeordnete Model darüber informiert. Naja, in meinem Fall will ich eine andere Komponente (einen JTree) ändern, aber das tut ja erstmal nicht zur Sache.
1.Versuch
------------
Einen Listener aufs TableModel registriert. Leider bekommt der nichts mit, wenn die Änderung am Model über den User (sprich den JTree) selbst vorgenommen wurde. Warum auch, denn dieser Listener ist ja genau für die Gegenrichtung, und das passiert schon implizit.
2.Versuch
------------
Listener auf den TableCellEditor. Der würde mir mit der Methode editingStopped() tatsächlich mitteilen, wenn eine User eine Änderung gemacht hat (ob der Wert nun wirklich ein anderer ist ist egal). Dazu wollte ich mir nun den vom JTree verwendeten TableCellEditor mit getCellEditor() holen. Aber da kommt nur null zurück. Natürlich, ich hab ja keinen mit setCellEditor() gesetzt, weil mir der DefaultEditor genügt. Aber warum bekomme ich null, und nicht den DefaultEditor zurück?
Ich könnte meine Applikation auch ändern, so dass ich das Problem nicht mehr habe. Aber mal prinzipiell: Ist das was ich will nicht möglich? Manchmal sieht man aber das Naheliegende nicht, deshalb diese Zeilen.
Es muss doch irgendwie möglich sein, bescheid zu bekommen, wenn eine Tabellen-Zelle vom User geändert wurde.
Jetzt wird sich jemand fragen, warum ich das wissen will, da ja die JTable automatisch das zugeordnete Model darüber informiert. Naja, in meinem Fall will ich eine andere Komponente (einen JTree) ändern, aber das tut ja erstmal nicht zur Sache.
1.Versuch
------------
Einen Listener aufs TableModel registriert. Leider bekommt der nichts mit, wenn die Änderung am Model über den User (sprich den JTree) selbst vorgenommen wurde. Warum auch, denn dieser Listener ist ja genau für die Gegenrichtung, und das passiert schon implizit.
2.Versuch
------------
Listener auf den TableCellEditor. Der würde mir mit der Methode editingStopped() tatsächlich mitteilen, wenn eine User eine Änderung gemacht hat (ob der Wert nun wirklich ein anderer ist ist egal). Dazu wollte ich mir nun den vom JTree verwendeten TableCellEditor mit getCellEditor() holen. Aber da kommt nur null zurück. Natürlich, ich hab ja keinen mit setCellEditor() gesetzt, weil mir der DefaultEditor genügt. Aber warum bekomme ich null, und nicht den DefaultEditor zurück?
Ich könnte meine Applikation auch ändern, so dass ich das Problem nicht mehr habe. Aber mal prinzipiell: Ist das was ich will nicht möglich? Manchmal sieht man aber das Naheliegende nicht, deshalb diese Zeilen.