|
The approach of Yair works fine unless the value is being changed continously. Scenario: you are moving mouse and continously performing some calculations with the result being displayed in the JTable. Then the burden of continously calling TableChangedCallback is too high. The same applies for the manual vs. programmatic cell selection. The problem is aggravated by the fact that if callbacks are being fired too frequently then they are being interupted and checking programmatic/manual does not happen at all.
My solution it to prevent callback from being fired at all. Write your own setValueAt() method in java which removes matlab listener from the java component, do waht you want with JTable and then add listener back. Methods used are: getTableModelListeners, removeTableModelListeners and addTableModelListeners. The listener name is "class javax.swing.event.TableModelListenerLIAdapterClass".
This java-side operation is very fast and solves the problem definitively.
|