如何定义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()
方法。
您可以覆盖 JTable
的 getColumnClass(...)
方法。
类似于:
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;
}
};
我在 Netbeans 中创建了一个图形界面,我在 FORM JFrame 中插入了一个 JTable。我有一个 MySql 数据库,它的列是:
Id: 整数
名称: 字符串
活动:布尔值
但是,当我使用:jTable.setModel(DbUtils.resultSetToTableModel())(库的方法RS2XML.jar)时,JTable是全部填充为字符串。
如何让 JTable 像数据库一样填充正确的数据类型(整数、字符串和布尔值)?
the JTable is filled all as String.
模型应包含正确类型的数据。问题是你没有定义每一列的数据类型,所以默认情况下它被视为 Object
并且默认渲染器只会调用对象上的 toString()
方法。
您可以覆盖 JTable
的 getColumnClass(...)
方法。
类似于:
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;
}
};