我制作了一个自定义的 AbstractTableModel。构造函数使用文件中的数据初始化模型。但是,我希望在模型中添加一个额外的列(这是因为其列中的 SQL 限制)。
我试图通过在初始化代码中添加对 addColumn(String columnName, Vector columnData) 方法的调用来实现这一点。
我自定义的 AbstractTableModel 中的这个 addColumn 方法是直接派生自 DefaultTableModel 的 addColumn 方法,包括“fireTableStructureChanged()”。
然而,当我运行此代码时,fireTableStructureChanged() 似乎没有添加我的新列,并且 JTable 仅显示文件中的数据。为什么会这样?
这是我正在使用的代码的简短说明:
public class Dummy extends AbstractTableModel {
public Dummy() {
//load data from SQL file into ResultSets
//transfer ResultSet.metadata into columnHeaders Vector<String>
//transfer ResultSet.data into columnDatums Vector<String>
fireTableChanged(null);
addColumn("Added Heading", (Vector)null);
}
public addColumn(String columnHeader, Vector columnData) {
columnHeaders.add(columnHeader);
// transfer columnData into columnDatums
fireTableStructureChanged();
}
}
这是一个监听器问题吗?此时没有任何东西在监听 fireTableStructureChanged() 吗?