1

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

我已经设置putClientProperty("terminateEditOnFocusLost", Boolean.TRUE)但将焦点更改为另一个组件并没有帮助。

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

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

任何帮助将不胜感激。


好的,所以我想通了。我最终打电话removeEditor()到桌子上并解决了它。

感谢您的回复。

4

2 回答 2

1

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

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

于 2011-09-29T15:07:43.557 回答
-1

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

感谢您的回复。

于 2011-09-30T19:17:21.463 回答