如何定义JTable 的Column 的数据类型与MySql 数据库相同?

How to define the JTable's Column's data type the same as MySql database?

我在 Netbeans 中创建了一个图形界面,我在 FORM JFrame 中插入了一个 JTable。我有一个 MySql 数据库,它的列是:

Id: 整数

名称: 字符串

活动:布尔值

但是,当我使用:jTable.setModel(DbUtils.resultSetToTableModel())(库的方法RS2XML.jar)时,JTable是全部填充为字符串。

如何让 JTable 像数据库一样填充正确的数据类型(整数、字符串和布尔值)?

the JTable is filled all as String.

模型应包含正确类型的数据。问题是你没有定义每一列的数据类型,所以默认情况下它被视为 Object 并且默认渲染器只会调用对象上的 toString() 方法。

您可以覆盖 JTablegetColumnClass(...) 方法。

类似于:

JTable table = new JTable(model)
{
    //  Returning the Class of each column will allow different
    //  renderers and editors to be used based on Class

    @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;
    }
};