Я использую 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();
}
}
Что я могу сделать, чтобы он сортировался в правильном порядке по возрастанию по значению?
TableModel
? Кажется, к ним относятся как кString
... - person MadProgrammer   schedule 17.11.2014