我在处理表格时遇到问题,在用户按下 Enter 或 Tab 键之前,正在编辑的单元格不会存储其新值,而我希望它在焦点丢失时立即提交值,因为我发现选择"file" -> 在编辑单元格时保存'导致该单元格的数据丢失。 我发现你可以简单地设置
table.putClientProperty("terminateEditOnFocusLost", Boolean.TRUE);
这适用于焦点的每次更改,除非选择了文件菜单,在这种情况下,单元格将保持在编辑模式。 我的问题是,在 Java 中,设置此属性的行为是否不像人们预期的那样,或者默认情况下焦点对菜单项的工作方式不同?
最佳答案
如果您不想使菜单项可聚焦,则需要在保存操作中添加如下代码:
if (table.isEditing())
table.getCellEditor().stopCellEditing();
关于Java:文件菜单点击是否获得焦点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8744137/