我正在使用一个使用rs2xml
填充mysql db数据的jTabletable.setModel(DbUtils.resultSetToTableModel(rs));
我有一些由布尔值显示的列,但这些列必须成为复选框。我知道我必须编写自己的AbstractTableModel,但我不知道如何......
您是否可以举例说明如何扩展AbstractTableModel并在代码中使用它?
答案 0 :(得分:1)
我有一些列由布尔值显示,但这些列必须成为复选框。
然后你可以覆盖JTable的getColumnClass(...)
方法:
JTable table = new JTable(...)
{
@Override
public Class getColumnClass(int column)
{
for (int row = 0; row < getRowCount(); row++)
{
Object o = getValueAt(row, column);
if (o != null)
{
return o.getClass();
}
}
return Object.class;
}
};
或者按照建议您可以创建自己的TableModel。这并不困难,您真正需要做的就是实现getColumnClass(...)
方法,但是您需要编写自己的代码来将数据加载到TableModel中。
有关替换DbUtils类的示例代码,请参阅TableFromDatabase.java
示例代码Table From Database。