高级:我有一个用户可以用来编辑数据的JTable.
每当用户按Enter或Tab键完成编辑时,数据都会被保存(我发现"保存"实际上意味着"调用TableModel的setValueAt()方法".)
如果用户在进行编辑后以任何其他方式离开单元格,则不会保存新数据,并且值保持原样.因此,例如,如果用户更改了值,然后单击屏幕上的其他窗口小部件,则更改不会"粘住".
我相信这是一个充满字符串的JTable的默认行为,是吗?
由于各种原因,所需的行为是单元格在用户离开单元格时保存任何和所有编辑.让Swing做到这一点的最佳/正确方法是什么?
我正在使用多个构建和应用程序,JTables我需要检测何时发生单元格值更改,以便我可以在数据库中更新它.我尝试TableModelListener并覆盖tableChanged,但只有在我编辑完单元格后单击(单击另一行)时才会触发.
还有其他办法吗?
我遇到了以下问题:我有一个JTable,它的on tablemodel坐在JFrame上.tablemodel使用自己的hashmap进行备份以存储内容.该表有两列,右侧可编辑.
通常,用户在右侧更改某个值,然后按下Enter按钮,该按钮将触发调用我的保存功能的tabledatachanged事件.然后可以关闭框架.
但是,有些用户只是简单地编辑单元格然后关闭窗口而不按Enter键,所以我没有机会保存表格.我知道如何在框架即将关闭时编写事件,但我不知道如何在完成编辑的同时检索"未完成"编辑的内容.
我想它与celleditors有关,我甚至尝试使用table.getCellEditor()来返回活动的但是它返回null.
谢谢您的帮助!