Java JTable编辑器随实时数据更改
我有一个由实时外部数据源填充的表模型,该数据源每xx秒更新一次。数据显示在JTable中 用户可以通过扩展AbstractCellEditor的celleditor覆盖表格单元格中的数据。如果用户不点击,代码将检查新值是否等于表模型中的值。如果没有,则假定它是一个覆盖 问题是,假设您单击一个字段,不更改该值,并且外部数据源更新表模型。与此同时,代码认为用户使用旧值设置了覆盖,而不仅仅是取消覆盖Java JTable编辑器随实时数据更改,java,swing,Java,Swing,我有一个由实时外部数据源填充的表模型,该数据源每xx秒更新一次。数据显示在JTable中 用户可以通过扩展AbstractCellEditor的celleditor覆盖表格单元格中的数据。如果用户不点击,代码将检查新值是否等于表模型中的值。如果没有,则假定它是一个覆盖 问题是,假设您单击一个字段,不更改该值,并且外部数据源更新表模型。与此同时,代码认为用户使用旧值设置了覆盖,而不仅仅是取消覆盖 执行此操作的标准逻辑和实现是什么?您的表模型应保持一种状态,指示是否逐个单元格重写了表单元格。如果不这
执行此操作的标准逻辑和实现是什么?您的表模型应保持一种状态,指示是否逐个单元格重写了表单元格。如果不这样做,您还将遇到一个问题,即用户已重写单元格,实时数据将进入并更改为用户输入的相同值。然后,您将取消该覆盖 您可以在TableModel中重写的setValueAtObject、int、int方法中填充此状态。当AbstractCellEditor完成编辑时,JTable将调用此方法 如何检测用户是否有 是否做了改变 我创建了一个类,我调用它来监听通过单元格编辑器所做的更改。它在单元格开始编辑之前获取值的副本,并在单元格停止编辑后将其与单元格的值进行比较。听起来这可能是你想要的 另一种解决方案可能是在后台更新TableModel之前检查表当前是否正在编辑单元格。您可能会弹出一个对话框,让用户有机会接受更新或取消更新