Java,在使用rs2xml填充jTable时,将布尔列更改为jTable中的checkbox

时间:2015-09-23 08:19:13

标签: java mysql swing jtable

我正在使用一个使用rs2xml

填充mysql db数据的jTable
table.setModel(DbUtils.resultSetToTableModel(rs));

我有一些由布尔值显示的列,但这些列必须成为复选框。我知道我必须编写自己的AbstractTableModel,但我不知道如何......

您是否可以举例说明如何扩展AbstractTableModel并在代码中使用它?

1 个答案:

答案 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