Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Multi-column сортировка в JTable 
:(
    Опции темы
KL7
Дата 1.12.2009, 10:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 7.12.2008
Где: Minsk City

Репутация: нет
Всего: 2



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

Скажем, если таблица выглядит таким образом:
1 3 4 
2 2 3
1 2 1
3 3 2

то после клика по второй колонке получаем:
2 2 3
1 2 1
1 3 4 
3 3 2

Если же зажать Ctrl и кликнуть на 3ю колонку, то желаемый результат выглядит так:
1 2 1
2 2 3
3 3 2
1 3 4 

Ну и хотелось бы иметь возможность сортировать как в возрастающем порядке, так и в убывающем. Т.е. один Ctrl+click сортирует по возрастанию, а еще один Ctrl+click изменяет направление сортировки.

Как это грамотнее всего реализовать? Клик на header-e таблицы обработал, а вот что дальше не знаю. Можно ли как-нибудь задействовать TableRowSorter для таких целей? Есть идеи, как это реализовать "топорным" методом, обрабатывая клик, запоминая порядок кликов и своими силами сортируя данные в массиве (векторе). Но хотелось бы что-нибудь более содержательное.

Заранее спасибо.
PM MAIL ICQ   Вверх
KL7
Дата 1.12.2009, 21:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 7.12.2008
Где: Minsk City

Репутация: нет
Всего: 2



Решение в принципе найдено. Осталось разобраться.
Если кому интересно - TableSorterDemo. Sun-овский пример реализации сортировки по нескольким колонкам.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   jk1
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема »


 




[ Время генерации скрипта: 0.0388 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.