jtable将所有内容排序为字符串

lvmkulzt  于 2021-06-17  发布在  Mysql
关注(0)|答案(1)|浏览(295)

我从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)
pxy2qtax

pxy2qtax1#

你需要覆盖 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;
}

相关问题