我有一张有三列的桌子。使用以下几行代码将列添加到表中:
...
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.columns
是Map<String, Integer>
,其中包含列名称及其大小。
我的目标是为我的表的每一列设置列类型,例如:我希望第三列呈现为一个复选框,因为它是一个布尔值(实际上,不是默认的String字段呈现)。看看how to use tables但我仍然没有弄清楚如何处理它特别是“使用自定义渲染器”一章,当它使用数组来确定单元格渲染(?)同时在表格内存储行。我用Vector而不是Arrays来操作数据......我有点困惑......
如何在列上设置自定义渲染?
答案 0 :(得分:1)
覆盖getColumnClass()
中的DefaultTableModel
,如下所示:
this.defaultModel = new DefaultTableModel(){
@Override
public Class<?> getColumnClass(int columnIndex) {
return columnIndex==2 ? Boolean.class : Object.class;
}
}