5

我得到了一个带有自定义 TableCellEditor(扩展 DefaultCellEditor)的表格,其中 JFormattedTextField 作为编辑器组件。

现在我遇到了问题:当我在编辑时按下一个单独的按钮。按下按钮时,编辑器保持“打开并处于活动状态”,而我希望它停止编辑,以便所做的更改可用于按钮引起的操作。

那么如何在按下不同的按钮时停止编辑。我为 JFormattedTextField 尝试了setFocusLostBehavior ( JFormattedTextField.COMMIT)但它似乎没有效果。

希望有人有一些好主意=)

4

3 回答 3

12

你可以试试

jtable.putClientProperty("terminateEditOnFocusLost", Boolean.TRUE);

于 2008-12-18T14:07:03.020 回答
3

谢谢 asalamon74,效果很好。

Sun Bug 数据库中关于这件事的争论:Bug 4724980:JTable:添加 API 以控制当表失去焦点时编辑会发生什么。(还发现了其他错误条目)。terminateEditOnFocusLost 开启“提交或取消”行为,这可以在 Java 源代码中的JTable$CellEditorRemover类中看到

是的,API 等中没有记录它有点奇怪......

于 2008-12-18T14:42:45.833 回答
0

这些事情还有更多问题,请参阅问题Java Swing : changed JTree selection while editingstopCellEditing() : how to get stopCellEditing() called before TreeListeners:valueChanged?

于 2009-08-14T10:33:36.700 回答