JavaSwing:重新计算JTable中的值,以使用TableModel或编写自定义编辑器?

JavaSwing:重新计算JTable中的值,以使用TableModel或编写自定义编辑器?,java,model-view-controller,swing,jtable,tablemodel,Java,Model View Controller,Swing,Jtable,Tablemodel,我使用JTable来显示来自流式数据源的数据 每个数据点都表示为一个X类型的对象,它有一个感兴趣的字段,我们称之为valueField。我的TableModel接口实现有一个对象的HashMap,X在X.getId()上键入 GUI用户可以使用JSpinner集作为相关列中每个单元格的自定义编辑器来更改值 但是,该值还取决于其他行中X.valueField的值 例如,我的表格表示3个对象X1、X2和X3。他们的关系是: X1.valueField=X2.valueField+X3.valueFi

我使用JTable来显示来自流式数据源的数据

每个数据点都表示为一个X类型的对象,它有一个感兴趣的字段,我们称之为valueField。我的TableModel接口实现有一个对象的HashMap,X在X.getId()上键入

GUI用户可以使用JSpinner集作为相关列中每个单元格的自定义编辑器来更改值

但是,该值还取决于其他行中X.valueField的值

例如,我的表格表示3个对象X1、X2和X3。他们的关系是:

X1.valueField=X2.valueField+X3.valueField

如果用户更改X1,X2和X3中的一个将保持不变(取决于业务逻辑),另一个值将更改以保持关系一致。类似地,用户还可以改变X2或X3

我应该在TableModel的实现中封装这种关系,还是应该扩展我的自定义表编辑器以考虑值可以更改的方式

我认为这两种方法都可行,但我不确定哪一种是正确的。Sun和其他论坛的文档建议扩展自定义编辑器以控制字段的值,但它没有考虑该值与基础数据模型的其他成员的关系

非常感谢您的任何想法


00rush

我建议,如果用户执行的mod是永久性的,即一旦制作了mod,备份数据就会更新,那么让表格模型维护修改后的数据是正确的。另一方面,如果有一种编辑模式,用户可以处理数据并在完成后提交,我建议编辑器维护mods,直到用户触发提交过程为止