我有一个JTable,它使用表格模型从数据结构中加载。数据结构的格式为NavigableMap<Float,NavigableMap<Float,Boolean>>
。一个示例数据如下:
Table Format:
Range f1,v1 f2,v2 f3,v3 f4,v4
12.1-30.2 30,true 32,false 45,true 50,false
30.2-45.6 30,true 32.4,true 45,true 50.1,true
上述数据格式在DS中表示为:
DS Format:
Key Value
12.1 <<30,true>,<32,false>,<45,true>,<50,false>>
30.2 <<30,true>,<32.4,true>,<45,true>,<50.1,true>>
45.6 null
我已经使用表格模型将上述数据表示为JTable。一旦数据从DS加载到表格中,我需要允许用户进行编辑。这就是我的问题所在。我的疑问是是否应该保持数据结构与表格中的更改同步,还是在用户完成编辑后从表格中重新创建DS,然后用旧的DS替换它。
此外,我需要验证数据(例如,对于上面的例子 - 假设用户想要编辑值30.1。他只能输入12.1和45.6之间的值。由于表格中的数据是字符串(一旦加载),因此我打算使用正则表达式和键盘监听器,并消耗所有不符合正则表达式和不在范围内的用户按键。我不确定这是否是一个好主意或有什么影响。我希望能得到一些建议。