【发布时间】:2010-02-17 08:44:06
【问题描述】:
我使用 JTable 来显示来自流数据源的数据。
每个数据点都表示为一个 X 类型的对象,它有一个感兴趣的字段,我们称之为 valueField。我对 TableModel 接口的实现有一个对象 X 的 HashMap,它以 X.getId() 为键。
GUI 的用户可以使用 JSpinner 集作为相关列中每个单元格的自定义编辑器来更改值。
但是,该值还取决于其他行中 X.valueField 的值。
例如,我的表格代表 3 个对象 X1、X2 和 X3。他们的关系是:
X1.valueField = X2.valueField + X3.valueField
如果用户更改 X1,则 X2 和 X3 中的一个保持不变(取决于业务逻辑),另一个值被更改以保持关系一致。同样,用户也可以更改 X2 或 X3。
我应该在我的 TableModel 实现中封装关系,还是应该扩展我的自定义表格编辑器以考虑值可以更改的方式?
我认为这两种方法都行得通,但我不确定哪一种是正确的。 Sun 和其他论坛的文档建议扩展自定义编辑器以控制字段的值,但它没有考虑该值与底层数据模型的其他成员的关系。
任何想法都非常感谢。
00赶
【问题讨论】:
标签: java model-view-controller swing jtable tablemodel