Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Java: GUI и Java FX приложения > JTable: отличить множественное выделение |
Автор: Real McCoy 5.8.2007, 12:32 | ||
Подскажите, плз, направление для размышлений о такой проблеме: имеется таблица и другой контрол (не важно какой, у меня - панель с диаграммой), на котором отражаются результаты выбора строк таблицы. В таблице позволено выбирать как одиночные строки, так и множественные интервалы строк. Каким образом можно определить, что пользователь выбирает одну строку в таблице, а не добавляет строку к уже выбранным (с Ctrl или Shift)? Надо вешать MouseListener или ActionListener, или есть более правильные способы? Код обработки выделения сейчас примерно такой:
|
Автор: Real McCoy 5.8.2007, 17:27 |
Вопрос в том, чтобы определить, сделал ли пользователь просто левый клик на строке таблицы, т.е. выделил одну строку или сделал его с нажатым Ctrl или Shift, т.е. добавил новую строку к существующим выделенным строкам. Я не нашёл, чтобы с помощью ListSelectionListener (который у меня уже реализован), можно было различить разный характер выделения строк, потому и спросил. |
Автор: AlexeyVorotnikov 5.8.2007, 17:48 |
Тогда, наверное, надо просто запоминать состояние выделения, и в ListSelectionListener'е сравнивать запомненное состояние выделения с тем, которое получается после соответствующего ивента. Добавлено через 1 минуту и 7 секунд PS: А зачем нужно различать такие способы выделения? |
Автор: Real McCoy 5.8.2007, 18:22 |
Видимо придётся запоминать статус выделения. А так хотелось простого и красивого решения ![]() Ну, например, в моём случае я делаю highlight элементов диаграммы, строки соответствующие которым выделяются пользователем в таблице. Управление осуществляется через контроллер, которому ListSelectionListener'ом шлётся ID выбранной записи с помощью PropertyChange. И мне надо как-то различать, когда на диаграмме надо сбросить подсветку всех подсвеченных элементов и выделить один новый, а когда добавить подсвеченный новый к остальным. |
Автор: nornad 5.8.2007, 18:23 |
Real McCoy, MyTable.getSelectedRowCount() тебе поможет. ![]() |
Автор: Real McCoy 5.8.2007, 18:42 |
О! Точно! Опять упустил с самой поверхности... Ещё одно спасибо, nornad! ![]() |