【问题标题】:Java Swing: Recalculating values in a JTable, to use the TableModel or write a custom editor?Java Swing:重新计算 JTable 中的值,使用 TableModel 还是编写自定义编辑器?
【发布时间】: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


    【解决方案1】:

    我建议如果用户执行的模组是永久性的,即一旦模组制作完成,支持数据就会更新——然后让表模型维护修改后的数据是正确的。另一方面,如果有一个编辑模式,用户可以在其中处理数据并在完成后提交,我建议编辑器维护模组直到用户触发提交过程。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-27
      • 2014-05-05
      • 1970-01-01
      • 2018-07-04
      • 1970-01-01
      • 2012-12-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多