0

我开始输入我的代码:

private void addMyCellEditorListener() {

    class MyCellEditorListener implements CellEditorListener
    {
        public MyCellEditorListener() {}

        public void editingCanceled(ChangeEvent e) {}

        public void editingStopped(ChangeEvent e) {
            if(row == 0 && column > 0)
                rechargeTableWithFindedResults(graphicTable.getValueAt(row,column));
            else
                dataTable.setValueAt(graphicTable.getValueAt(row,column),row,column);
        }
    };

    .... addCellEditorListener(new MyCellEditorListener());
}

我希望我graphicTable通过给它一个自定义来检测其单元格中的数据更改CellEditorListener,但我真的不明白如何添加它。我用如下代码尝试了几次:

DefaultCellEditor editor = new DefaultCellEditor(new JTextLabel());
editor.addCellEditorListener(new MyCellEditorListener());
this.graphicTable.setCellEditor(editor);

... 或者:

this.graphicTable.setCellEditor(this.graphicTable.getCellEditor().addCellEditorListener(new MyCellEditorListener()));

...但是这些技术NullPointerException在这两种情况下都给了我一个。

我已经通过论坛四处寻找解决方案,但他们只是让我更加困惑。

每一个提示将不胜感激。

提前致谢。

4

1 回答 1

3

你的方法不正确。你可以很容易地检测到你的数据变化TableModel,特别是在setValueAt方法中。一旦您检测到更改并对其做出反应,您必须调用其中一种fireTable..方法让表和所有其他侦听器知道数据已更改

根本不需要将任何侦听器分配给单元格编辑器。

于 2013-08-01T19:45:58.267 回答