代码之家  ›  专栏  ›  技术社区  ›  Luhar

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

  •  1
  • Luhar  · 技术社区  · 16 年前

    我使用jtable来显示来自流数据馈送的数据。

    每个数据点都表示为X类型的对象,它有一个感兴趣的字段,我们称之为ValueField。我对TableModel接口的实现有一个在x.getid()上键控的对象x的哈希图。

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

    但是,该值也依赖于其他行中x.ValueField的值。

    例如,我的表表示3个对象x1、x2和x3。他们的关系是:

    x1.valuefield=x2.valuefield+x3.valuefield

    如果用户更改x1,x2和x3中的一个保持不变(取决于业务逻辑),另一个值则更改以保持关系一致。同样,用户也可以更改x2或x3。

    我应该在TableModel的实现中封装关系,还是应该扩展我的自定义表编辑器以考虑值的变化方式?

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

    任何想法都非常感谢。

    奔驰

    1 回复  |  直到 16 年前
        1
  •  2
  •   akf    16 年前

    我建议,如果用户执行的mod是永久的,即一旦mod被创建,备份数据被更新,那么让表模型维护修改后的数据是正确的。另一方面,如果有一个编辑模式,用户可以使用数据并在完成后提交,我建议编辑器维护mods,直到用户触发提交过程。