gpt4 book ai didi

java - JTable 日期列排序卡住

转载 作者:行者123 更新时间:2023-12-02 08:09:24 24 4
gpt4 key购买 nike

我正在使用一个 JTable,其中包含一些具有不同数据类型(int、string、date)的列。当我运行应用程序时,数据显示正常,但如果我使用列标题对数据进行排序,它会卡住在包含日期对象的列上。下面是代码。第 8、9 和 10 列是导致问题的原因。如何使日期列可排序?

public void updateLogTable() {

DefaultTableModel model = (DefaultTableModel) logTable.getModel();
List<LogObject> lstLogObjects = new ArrayList<LogObject>();
lstLogObjects = LogManager.getLog();
for (int i = 0; i < lstLogObjects.size(); i++) {
Object[] temp = new Object[13];

temp[0] = Integer.parseInt(lstLogObjects .get(i).getLogID());
temp[1] = lstLogObjects .get(i).getLogType();
temp[2] = lstLogObjects .get(i).getYear();
temp[3] = lstLogObjects .get(i).getQuarter();
temp[4] = lstLogObjects .get(i).getOriginalID();
temp[5] = lstLogObjects .get(i).getSubject();
temp[6] = lstLogObjects .get(i).getAction();
temp[7] = lstLogObjects .get(i).getRequester();
temp[8] = lstLogObjects .get(i).getADate(); //Returns java.util.Date
temp[9] = lstLogObjects .get(i).getCDate(); //Returns java.util.Date
temp[10] = lstLogObjects .get(i).getSDate(); //Returns java.util.Date
temp[11] = lstLogObjects .get(i).getRemarks();
temp[12] = lstLogObjects .get(i).getField1();

model.addRow(temp);

}
model.fireTableDataChanged();
}

最佳答案

您是否重写了 TableModel 的 getColumnClass(...) 方法以返回正确的类?

然后,表排序方法将对列进行排序并将其视为日期,而不是在日期对象上调用 toString()。

如果您需要更多帮助,请发布您的 SSCCE演示问题。

关于java - JTable 日期列排序卡住,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7679897/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com