jTable将所有内容排序为String
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jTable将所有内容排序为String相关的知识,希望对你有一定的参考价值。
我从mysql(JDBC)数据库下载数据并在jTable
中显示:
PreparedStatement pstmt = (PreparedStatement) connection.prepareStatement(query);
pstmt.setInt(1,idUser);
result = pstmt.executeQuery();
jTable.setModel(DbUtils.resultSetToTableModel(result));
我使用Netbeans,在jTable
属性中我将autoCreateRowSorter
选项设置为true。但是,排序有效,某些列应该按int值排序,但是用户ID按字符串排序。我不知道如何以允许我选择列类型的方式初始化表。然后排序应该正常工作。可能它可以在这行代码(下面)中完成,这就是为什么我要求更有经验的人提供建议。
jTable.setModel(DbUtils.resultSetToTableModel(result));
我还可以添加表格中的列的外观:
UserID(int) / name(String) / surname(String) / phone number(int) /
dateTime(e.g. 2018-11-03 19:02:45 - may remain in the programme as String)
答案
您需要覆盖getColumnClass(...)
的JTable
以告诉表格每列中的数据类型,以便表格可以为每列使用适当的渲染/编辑器和Compartor
。
就像是:
@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;
}
以上是关于jTable将所有内容排序为String的主要内容,如果未能解决你的问题,请参考以下文章