JXTableHeader resetSortOrder на Shift + клик

Я использую JXTable и JXTableHeader для отображения сортируемых таблиц. JXTableHeader поддерживает способ сброса порядка сортировки, удерживая клавишу Shift и одновременно щелкая левой кнопкой мыши по заголовкам. Проблема заключается в следующем: этот режим сброса невозможен, потому что BasicTableHeaderUI Java Swing добавляет прослушиватель мыши в JXTableHeader, и хотя я добавляю свой собственный прослушиватель в JXTableHeader, срабатывает BasicTableHeaderUI, и хотя я сбрасываю порядок сортировки в методе mouseClick моего слушателя, BasicTableHeaderUI сразу устанавливает тот же столбец для сортировки в своем собственном методе mouseClick. Проблема № 2: я не могу использовать потребление для события, так как слушатель BasicTableHeaderUI просто игнорирует флаг.

Как я могу предотвратить запуск прослушивателя BasicTableHeaderUI чистым способом?

Решение:

Это решение, которое я выбрал. Я реализовал оболочку для MouseListener BasicTableHeaderUI и изменил ее на свою оболочку в updateUI. Моя оболочка просто игнорирует вызов mouseClick обернутого MouseListener при определенном условии (-> resetSortOrder).


person user1405469    schedule 04.03.2013    source источник
comment
Также см. этот вопрос   -  person Robin    schedule 04.03.2013
comment
удалить все MouseListener из JTableHeader, все MouseEvent и KeyEvents могут быть evt.consume(), или перенаправлены, или fireXxxXxxx, для обходного пути и поиска кода в сообщении @kleopatra, ответили несколько раз   -  person mKorbel    schedule 04.03.2013
comment
Спасибо, mKorbel, что-то вроде это действительно может сработать, не так уж и приятно ...   -  person user1405469    schedule 05.03.2013
comment
Спасибо, Робин и Гийом, но мне очень нужно оригинальное поведение...   -  person user1405469    schedule 05.03.2013
comment
будьте осторожны: такое подключение может не работать с JXTableHeader, потому что оно делает некоторую магию - не сортировать, если в области изменения размера - внутренне (используя частный mouseListener) - не уверен, как/если это может мешать, никогда не пробовал :-)   -  person kleopatra    schedule 05.03.2013