删除行时单元格编辑器不会退出

时间:2011-09-29 14:51:45

标签: java swing jtable tablecelleditor

我有一个带有多个列的JTable,其中一个列有一个自定义渲染器,用于在JPanel中显示3个按钮以及一个自定义编辑器,以允许它们被点击。其中一个按钮向我们的服务器发送删除命令以获取该行ID,然后通过清除数据模型并再次加载数据从服务器重新加载表数据。当发生这种情况时,具有3个按钮的单元格将继续显示(但不会显示该行的其余部分),直到我单击另一行中的另一个按钮,即使该行已消失。

我已设置putClientProperty("terminateEditOnFocusLost", Boolean.TRUE),但将焦点更改为其他组件无效。

我尝试在刷新数据之前删除行本身(甚至删除了所有行),并确保调用fireTableRowsDeleted()

我还尝试调用cancelCellEditing()的{​​{1}}和stopCellEditing()函数,甚至手动将编辑行/列设置为另一个单元格。

非常感谢任何帮助。


好的,所以我明白了。我最后在桌子上打电话给TableCellEditor并修复了它。

感谢您的回复。

2 个答案:

答案 0 :(得分:1)

  

我设置了putClientProperty(“terminateEditOnFocusLost”,Boolean.TRUE)但是将焦点更改为另一个组件没有帮助。

创建表时应该调用该方法,而不是在单击按钮时在actionPerformed方法中调用。

答案 1 :(得分:-1)

好的,所以我明白了。我最后在数据刷新之前调用了表上的removeEditor()并修复了它。

感谢您的回复。