Сортировка чисел в JTable - PullRequest
2 голосов
/ 10 июня 2011

Как реализовать сортировку столбцов, содержащих только числа в JTable?Есть класс TableRowSorter.Использование этого, однако, приводит к следующему: для каждого числа строковое представление берется путем вызова toString, а затем сравнивается вместо этого.Вот что я получаю, например:

100, 13, 2, 22, 9 вместо 2, 9, 13, 22, 100

TableRowSorter<TableModel> sorter = new TableRowSorter<TableModel>(table);
table.setRowSorter(sorter);

Чтобы избежать этого, есть следующееМетод:

sorter.setComparator(column,comparator);

Поскольку мои числа только Integer, Long и Double, я не понимаю, почему я должен определять скромный компаратор стандартных классов java.lang.Есть ли более простой способ?

Ответы [ 2 ]

6 голосов
/ 10 июня 2011

Вы должны определить Number для класса столбца.

См. TableModel

public Class<?> getColumnClass(int columnIndex);
2 голосов
/ 10 июня 2011

Как определяется ваша табличная модель?Если метод getColumnClass возвращает Integer.class (или Long.class, или Number.class, в зависимости от содержимого столбца), сортировка должна быть правильной, и вам не нужно настраивать какой-либо конкретный сортировщик строк.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...