Сортировка Java JTable не работает только для одного столбца - PullRequest
1 голос
/ 03 ноября 2011

В приложении Java Swing (встроенном в Netbeans 6.9) у меня есть JTable с 21 столбцом.Около 14 из этих столбцов состоят из двойных значений.Первые 6 столбцов - это даты и строки.В 7-м столбце начинаются пары.Каждый столбец в таблице будет отсортирован правильно, нажав на строку заголовка таблицы, когда приложение запущено - за исключением 7-го столбца.Таблица считает, что эти данные относятся к типу string, и сортирует их как строку.

Если я перемещу данные в другой столбец, этот новый столбец теперь сортируется как строка.Таким образом, проблема не в конкретном столбце, а в некоторых данных.

Однако данные определяются как двойные, чистые и простые:

double x;
public double getX() {
    return x;
}

Столбцы двойников, которые делаютсортировка правильно определена одинаково.

Я даже пытался привести эти проблемные данные к двойному (даже если это уже двойное число), и это не имело никакого значения.

Я такжепопытался установить средство визуализации ячейки для столбца, который не будет сортироваться как число (даже если этот столбец не нуждается в этом шаге).

table.getColumnModel().getColumn(6).setCellRenderer(table.getDefaultRenderer(Double.class));

Что еще может вызывать сортировку этого столбца чиселкак строки?

1 Ответ

3 голосов
/ 03 ноября 2011

Мне пришлось реализовать getColumnClass в моем классе, который расширяет DefaultTableModel.

public class MyTableModel extends DefaultTableModel {

    public MyTableModel(Object[][] data, Object[] columnNames) {
        super(data, columnNames);
    }
            @Override
    public Class getColumnClass(int c) {
        return getValueAt(0, c).getClass();
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...