如何强制jtable中的单元格编辑器接受编辑

bum*_*box 4 java jtable

我有一个包含多个可编辑单元格的jtable

当有人按下菜单上的"保存按钮"时,它不会保存当前仍在编辑的最后一个值.(除非他们先从单元格中删除)

我可以通过调用返回true的.isEditing()来检查它是否正在编辑.

我想做的是触发单元格编辑完成,它可以显示任何验证错误,如果没有,则保存.(用户不必先输出)

有人可以指出我正确的方向

谢谢

Mar*_*ers 6

你可以手动打电话:

JTable table;
table.getCellEditor().stopCellEditing();
Run Code Online (Sandbox Code Playgroud)

这应该导致表停止在该单元格上进行编辑.通过覆盖stopCellEditing()您的方法TableCellEditor并在某些情况下返回false,您可以指示单元格的值当前无效,因此此时无法停止编辑.


Sud*_*kar 6

当你有一个包含多个可编辑单元格的jtable时

当有人按下菜单上的"保存按钮"时,它不会保存最后一个值,请添加下面的代码

第一种是让表自动停止编辑并保存数据.这可以通过在表上设置属性来完成:

JTable table = new JTable(...);
table.putClientProperty("terminateEditOnFocusLost", Boolean.TRUE);
Run Code Online (Sandbox Code Playgroud)

它将确保当有人按下菜单上的任何按钮时,它也会保存最后编辑的值.