gpt4 book ai didi

Java Swing : Recalculating values in a JTable, 使用TableModel还是编写自定义编辑器?

转载 作者:行者123 更新时间:2023-11-30 05:14:06 25 4
gpt4 key购买 nike

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

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

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

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

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

X1.valueField = X2.valueField + X3.valueField

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

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

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

非常感谢任何想法。

00冲

最佳答案

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

关于Java Swing : Recalculating values in a JTable, 使用TableModel还是编写自定义编辑器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2279283/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com