我得到了一个带有自定义TableCellEditor(扩展DefaultCellEditor)的表,其中有一个JFormattedTextField作为编辑器组件。
现在我遇到了问题:当我在编辑时按下一个单独的按钮。当按下按钮时,编辑器保持“打开并激活”,同时我希望它停止编辑,以便所做的更改可用于按钮引起的操作。
因此,当按下一个不同的按钮时,如何使编辑停止。我为 JFormattedTextField 尝试了 setFocusLostBehavior(JFormattedTextField.COMMIT),但它似乎没有效果。
希望有人有一些好主意=)
答案 0 :(得分:12)
您可以尝试
jtable.putClientProperty("terminateEditOnFocusLost", Boolean.TRUE);
答案 1 :(得分:3)
感谢asalamon74,效果非常好。
有关Sun Bug数据库的事情存在争议:Bug 4724980: JTable: Add API to control what happens to edits when table loses focus.(还发现了其他错误条目)。 terminateEditOnFocusLost打开“提交或取消”行为,可以在类 JTable $ CellEditorRemover
上的Java源代码中看到是的,它有点奇怪,它没有记录在API等...
答案 2 :(得分:0)