Java,在使用 rs2xml 填充 jTable 时将 jTable 中的布尔列更改为复选框
Java, changing boolean column to checkbox in jTable when using rs2xml for populating jTable
我正在使用一个 jTable,它使用 rs2xml
填充了 mysql 数据库数据
table.setModel(DbUtils.resultSetToTableModel(rs));
我有一些由布尔值显示的列,但这些列必须成为复选框。我知道我必须编写自己的 AbstractTableModel,但我不知道如何...
你们中的哪位能举例说明如何扩展 AbstractTableModel 并在代码中使用它吗?
I have some columns that are displayed by boolean values, but these must become checkboxes.
然后你可以覆盖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 中。
请参阅找到的 TableFromDatabase.java
示例代码 Table From Database 替换 DbUtils 的示例代码 class。
我正在使用一个 jTable,它使用 rs2xml
填充了 mysql 数据库数据table.setModel(DbUtils.resultSetToTableModel(rs));
我有一些由布尔值显示的列,但这些列必须成为复选框。我知道我必须编写自己的 AbstractTableModel,但我不知道如何...
你们中的哪位能举例说明如何扩展 AbstractTableModel 并在代码中使用它吗?
I have some columns that are displayed by boolean values, but these must become checkboxes.
然后你可以覆盖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 中。
请参阅找到的 TableFromDatabase.java
示例代码 Table From Database 替换 DbUtils 的示例代码 class。