Jtable列渲染

时间:2015-07-08 09:46:46

标签: java swing jtable rendering tablemodel

我有一张有三列的桌子。使用以下几行代码将列添加到表中:

...
for (Map.Entry<String, Integer> column : this.columns.entrySet())
{
    this.addColumn(column.getKey(), column.getValue());
}
...
public void addColumn(String name, int size)
{
    this.columns.put(name, size); //<--- set the column size
    this.defaultModel.addColumn(name); //<--- add the new column
}

this.columnsMap<String, Integer>,其中包含列名称及其大小。

我的目标是为我的表的每一列设置列类型,例如:我希望第三列呈现为一个复选框,因为它是一个布尔值(实际上,不是默认的String字段呈现)。看看how to use tables但我仍然没有弄清楚如何处理它特别是“使用自定义渲染器”一章,当它使用数组来确定单元格渲染(?)同时在表格内存储行。我用Vector而不是Arrays来操作数据......我有点困惑......

如何在列上设置自定义渲染?

1 个答案:

答案 0 :(得分:1)

覆盖getColumnClass()中的DefaultTableModel,如下所示:

this.defaultModel = new DefaultTableModel(){
    @Override
    public Class<?> getColumnClass(int columnIndex) {
        return columnIndex==2 ? Boolean.class : Object.class;
    }
}