日期选取器单元格编辑器日期选择不起作用



我有一个 JTable,我在其中添加了一个 DatePickerCellEditor 来编辑日期,方法是覆盖表的 getCellEditor 方法。当我通过在文本框上键入来编辑此单元格时,一切正常,数据已更改。不幸的是,当我按下按钮并从日历中选择一个日期时,日历消失了,但日期没有改变。

这是我的getCellEditor。是有什么问题,还是别的什么?我正在使用 JDK 8。谢谢。

@Override
    public TableCellEditor getCellEditor(int row, int column) {
        TableCellEditor ret;
        //column = convertColumnIndexToModel(column);        
        if ((column == 1 || column == 2) && getModel().getValueAt(row, column) != null) {
            Class rowClass = getModel().getValueAt(row, column).getClass();            
            if (rowClass.equals(Integer.class)) {
                return new SpinnerCellEditor();
            } else if (rowClass.equals(Date.class)) {
                return new DatePickerCellEditor();
            } else {
                return getDefaultEditor(rowClass);
            }
        } else {
            return super.getCellEditor(row, column);
        }
    }

问题似乎是表上的终止编辑焦点丢失属性。似乎它迫使DatePickerCellEditor在从日历弹出窗口接收更新之前关闭编辑。

我刚刚从配置 JTable 的代码中注释了以下行,它开始正常工作。

listaFiltragem.putClientProperty("terminateEditOnFocusLost", Boolean.TRUE);

最新更新