DatePickerCellEditor日期选择不起作用

时间:2018-03-12 17:11:01

标签: java jtable

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

这是我的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);
        }
    }

1 个答案:

答案 0 :(得分:0)

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

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

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