我正在使用 JXTable 来显示、过滤和排序一些数据。但是,我在排序时遇到了一些意外行为。如您所见,这些值没有按预期升序,而是按字符串的排序方式排序。
为了解决这些评论,我确信在代码的正确部分(即 Float.valueOf() 块)中解析了此列。我通过调试知道这一点。此外,我通过单击 jxtable 的标题对列进行排序。我不是以编程方式进行的。
为了清楚起见,我将它们添加为浮点数:
class FantasyProTableModel extends DefaultTableModel
{
void loadData() throws BiffException, IOException
{
Workbook workbook = Workbook.getWorkbook(new File("Input.xls"));
Sheet sheet = workbook.getSheet(0);
int numCols = sheet.getColumns();
for(int col=0;col<numCols;col++)
{
addColumn(sheet.getCell(col,0).getContents());
}
for(int rownum=1;rownum<sheet.getRows();rownum++)
{
Object[] row = new Object[numCols];
for(int col=0;col<numCols;col++)
{
try
{
row[col] = Float.valueOf(sheet.getCell(col,rownum).getContents());
//parseFloat() doesn't work either
}
catch(NumberFormatException e)
{
row[col] = sheet.getCell(col,rownum).getContents();
}
}
addRow(row);
}
workbook.close();
}
}
我该怎么做才能让它按值按正确的升序排序?