编辑时,带行分类器的JTable崩溃

时间:2018-03-21 23:03:49

标签: java swing jtable editor tablesorter

我使用的JTable应该是可排序和可编辑的。为了使它可以排序,我做了以下事情:

    table.setAutoCreateRowSorter(true);

在我实现此行之前,显示表并更改其数据非常有效。现在,当我编辑单元格时,抛出以下异常:

Exception in thread "AWT-EventQueue-0" java.lang.IndexOutOfBoundsException: Invalid range
at javax.swing.DefaultRowSorter.rowsUpdated(DefaultRowSorter.java:896)
at javax.swing.DefaultRowSorter.rowsUpdated(DefaultRowSorter.java:915)
at javax.swing.JTable.notifySorter(JTable.java:4264)
at javax.swing.JTable.sortedTableChanged(JTable.java:4118)
at javax.swing.JTable.tableChanged(JTable.java:4395)
at javax.swing.table.AbstractTableModel.fireTableChanged(AbstractTableModel.java:296)
at javax.swing.table.AbstractTableModel.fireTableCellUpdated(AbstractTableModel.java:275)
at ui.gui.chapterEditor.ChapterEditorTableModel.setValueAt(ChapterEditorTableModel.java:64)
at javax.swing.JTable.setValueAt(JTable.java:2741)
at javax.swing.JTable.editingStopped(JTable.java:4723)...

setValueAt方法如下:

@Override
public void setValueAt(Object value, int row, int column) {
    updateVocable(content.getVocableList().get(row), column, value);
    parent.setChanged(true);
    fireTableCellUpdated(row, column);
}

请注意,在动态更改数据时,表构造一次。在给出上述异常的测试中,它被初始化为空,然后插入数据一次。只要我不编辑单元格,排序就可以完美地完成。每次用户交互都是在插入数据后完成的。

0 个答案:

没有答案