在开发过程中遇到这样一个问题,我编辑JTable里的内容,编辑完了,然后我点保存按钮,结构单元格的内容不是改动后的内容,也就是说没有保存。这点就不像excel了,人家随时保存,随时是最新内容,然后找解决方案吧。
最后发现解决方案也很简单,如果你的光标还停留在那个单元格,这时候JTable默认该单元格还没有结束编辑,不会保存当前的值。
这时如果点别处的“保存”按钮来保存单元格的值,就需要强制Jtable结束编辑状态。一般可以通过jTable.getCellEditor().stopCellEditing()来实现,但是如果你的单元格设置默认的编辑器的话,就需要通过jTable1.getCellEditor(row,column).stopCellEditing()来实现 。
也就是说点“保存”按钮时,调用下JTable的getCellEditor().stopCellEditing(),结束单元格的编辑状态,然后保存JTable的值。现在想想其实和excel一个道理,excel点保存也是先结束单元格的编辑状态,然后保存。
Java代码
- jTable.getCellEditor().stopCellEditing();
不禁感慨:你可以知道你知道的东西,也可以知道你不知道的东西,但是你不知道你不知道的东西。