检查JTable单元格值对于表模型中的所有值都是唯一的

时间:2018-09-01 06:54:54

标签: java swing jtable

我有一个JTable,带有2个单元格,用户可以编辑/输入数据。第一列是名称列,并且值必须是唯一的,例如他们不能输入重复的名称。第二列是int列,输入范围为1-999。

在两种情况下,我都将自定义DefaultCellEditor实现连接到String.classInteger.class的关联类类型。

我努力了解的是应该在哪里检查重复项。虽然Integer类的单元格编辑器可以检查用户是否输入了1-999,但单元格编辑器有责任检查模型以确保输入的值是唯一的,还是应该在之后的“表模型”中进行此检查?单元格失去了焦点,单元格编辑器的stopCellEditing()方法已被调用并委托给模型?

此刻,我已经将模型连接到单元格编辑器中,并在那里进行了重复检查,这在反射时似乎是不正确的。

我需要确保在单元格失去焦点之后,该值会得到验证,如果该值被视为无效,则该单元格会重新获得焦点,并且完全选择了无效文本,以便他们可以开始键入。

0 个答案:

没有答案