Hi,
angenommen es sei ein selbst implementiertes TableModel vorhanden. Dieses Tablemodel implementiert
die Methode isCellEditable() derart das genau eine Spalte editierbar ist. Dieses Model wird einer
standard JTable übergeben. Nun ist es aber so, dass durch einen Doppelklick auf diese Zelle diese
in ihren "Editiermodus" geht.
Genau das möchte ich verhindern, da die Zellen auf eine andere Art und Weise in den "Editiermodus" gebracht werden sollen. Letzteres funktioniert nicht wenn man in isCellEditiable grundsätzlich false zurückgibt. Meine momentane Lösung sieht so aus, das ich einen CellEditor geschrieben habe der falls ein Mouse-Event einläuft prüft ob die Klickanzahl gleich Integer.MAX ist um zu verhindern das die Zelle in den Editiermodus geschaltet wird.
Meine Frage ist nun, geht das eleganter, habe ich irgendwas übersehen, gibt es andere Wege? Ich
finde es jetzt nicht besonders berauschend die Logik zum "Akzeptieren" ob eine Zelle editiert werden
kann auf die JTable und das TableModel aufteilen zu müssen.
angenommen es sei ein selbst implementiertes TableModel vorhanden. Dieses Tablemodel implementiert
die Methode isCellEditable() derart das genau eine Spalte editierbar ist. Dieses Model wird einer
standard JTable übergeben. Nun ist es aber so, dass durch einen Doppelklick auf diese Zelle diese
in ihren "Editiermodus" geht.
Genau das möchte ich verhindern, da die Zellen auf eine andere Art und Weise in den "Editiermodus" gebracht werden sollen. Letzteres funktioniert nicht wenn man in isCellEditiable grundsätzlich false zurückgibt. Meine momentane Lösung sieht so aus, das ich einen CellEditor geschrieben habe der falls ein Mouse-Event einläuft prüft ob die Klickanzahl gleich Integer.MAX ist um zu verhindern das die Zelle in den Editiermodus geschaltet wird.
Meine Frage ist nun, geht das eleganter, habe ich irgendwas übersehen, gibt es andere Wege? Ich
finde es jetzt nicht besonders berauschend die Logik zum "Akzeptieren" ob eine Zelle editiert werden
kann auf die JTable und das TableModel aufteilen zu müssen.