我正在尝试为我的 JTable 创建自己的自定义 TableModel(因为我想将一行 JCheckBox 合并到我的表中。)我也在 JScrollPane 中拥有 JTable。在我尝试合并 JCheckBox 和自定义 AbstractTableModel 之前,如果我使用默认的 (Object[][], Object[]) 构造函数,JTable 将显示良好。我在 Sun 的 JTable 教程中读到,这些构造函数默认将所有数据视为字符串。
然后我创建了自定义 AbstractTableModel 并从此开始:
JTable table = new JTable(dataArray, col);
对此:
JTable table = new JTable();
我假设这将调用尝试使用扩展 AbstractTableModel 的定制类创建 JTable,但现在 JScrollPane 中什么也没有显示。
我使用这个不正确吗?我实际上复制了 Sun 教程中的代码,仅更改了所涉及的数据文件的名称。我也将这个方法放在同一个类中。是否有不同的方法来确保您的表是使用自定义表模型创建的?任何见解将不胜感激。
最佳答案
JTable
有几个采用 TableModel
作为参数的构造函数。这就是您要找的吗?从您提供的代码片段来看,您似乎正在调用默认构造函数并期望它以某种方式使用您的自定义表模型。 (也许缺少一些执行此操作的代码?)。如果您使用默认构造函数,JTable
将在内部创建一个 DefaultTableModel
实例并使用它。
编辑: 注释不能很好地接受代码,因此在此处添加:要让表使用您的模型,您可以执行以下操作:
MyTableModel model = new MyTableModel();
// ...initialise model if required
JTable table = new JTable(model);
关于java - 获取具有自定义表模型的 JTable 以显示在 JScrollPane 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2259815/