我有一个有3列的JTable。列上的一个必须有一个整数值,我必须在单元失去焦点之前验证输入。
我使用了单元格编辑器并覆盖了stopCellEditing()函数。我已经在stopCellEditing中编写了验证,它确实将重点放在了单元格上,但我的问题是:
这是我的编辑课:
public class MyEditor extends DefaultCellEditor implements TableCellEditor {
public MyEditor() {
super(new JTextField());
}
@Override
public boolean stopCellEditing() {
Object obj = delegate.getCellEditorValue();
if (obj is not an integer) {
return false;
}
return true;
}
这就是我在我的框架中使用的方式:
studentsTable.getColumnModel()。getColumn(2).setCellEditor(新 的MyEditor());
Plz帮助我:)
答案 0 :(得分:2)
列上的一个必须具有整数值
无需为此编写自定义编辑器。
您需要做的就是覆盖JTable的getColumnClass()
方法或TableModel,表格将使用提供的Integer编辑器。
关于您发布的代码:
由于您的if条件无效,因此无法编译。我们需要真正的代码,以便我们发现可能的逻辑错误。代码也应以SSCCE。
无需引用委托变量。只需直接调用getCellEditor()方法。
当我覆盖stopCellEditing()时,不知道它是否有所不同,而不是返回true我使用:
return super.stopCellEditing();