java - 获取具有自定义表模型的 JTable 以显示在 JScrollPane 中

标签 java jtable jscrollpane jcheckbox

我正在尝试为我的 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/

相关文章:

java - webview报错的解决方法

java - 当单元格编辑器组件显示对话框时,JTable 失去焦点

java - 不正确的 GridBagLayout 行为

java - 如何在 Clojure REPL 中要求一个 jar 文件?

java - 如何在java中获取日期与之前的时间

java - 如何通过文本 Pane 隐藏 Swing 加速器?

java - JTable 更改列顺序然后编辑单元格引发错误

Java JTable 排序不适用于一列

java - JScrollpane 之上的 JLabel

java - JTextArea 无滚动条