swing tableChanged()没有响应表的更改

时间:2011-11-17 16:39:52

标签: java swing netbeans jtable

我在Java中使用Swing进行编码。我正在使用Netbeans布局管理器。我在使用jTable时遇到了麻烦。我已经将一个客户模型应用于它,它扩展了AbstractTableModel。我希望第三列以复选框的形式包含布尔值(我已成功完成)。我在实现TableModelListener时使用jTable的对话框。我的tableChanged()方法只有以下代码:System.out.println("Table changed!"); 但是,每当我尝试检查其中一个复选框时,当我单击并按住时,它会执行一些“抑制”操作,然后当我释放时,它不会更改复选框的状态。它也没有打印出来“桌子已经改变了!”这让我发疯了。我已经阅读了所有相关信息,但无法弄清楚为什么我的工作无效。请帮忙。这是相关的代码:

在jDialog构造函数中:

this.chapterTableModel = new ChapterTableModel(chapterList);
chapterTableModel.addTableModelListener(this);

然后执行此操作的方法:chapterTable.setModel(chapterTableModel);

然后在我的构造函数下面,我有这个方法:

@Override
public void tableChanged(TableModelEvent tme) {
  System.out.println("Table Changed!");
}

可在此处找到整个代码:http://collabedit.com/ttcds 在这里:http://collabedit.com/qn3kx

提前感谢您的帮助!

2 个答案:

答案 0 :(得分:3)

你是否在ChapterTableModel的mutators中调用了一个父AbstractTableModel类的fire-methods?

答案 1 :(得分:2)

您没有在任何地方覆盖setValueAt,因此表格中的值不会被更改。