![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
BlHol |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 126 Регистрация: 26.11.2005 Репутация: нет Всего: нет |
День добрый!
Вопрос такой. Создал таблицу, заполнил. Теперь нужно на ячейку таблицы повесить листенер, действия в котором, выполняются в зависимости от значения в ячейке. Вопрос - как? Если можно, общий алгоритм и пару методов. Заранее спасибо. С уважением. |
|||
|
||||
fixxer |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 672 Регистрация: 14.9.2006 Где: Саратов, Россия Репутация: 15 Всего: 27 |
Можно usecase поподробнее, что именно нужно и в какой момент?
Это сообщение отредактировал(а) fixxer - 11.1.2009, 17:03 -------------------- ![]() |
|||
|
||||
BlHol |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 126 Регистрация: 26.11.2005 Репутация: нет Всего: нет |
Вобщем ситуация такая. Есть таблица с различными значениями. Если ячейка содержит значение отличное от нуля, то при клике на ней должна разворачиваться (под данной таблицей) еще одна таблица с расшифровкой данного значения ячейки. Заранее спасибо. |
|||
|
||||
fixxer |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 672 Регистрация: 14.9.2006 Где: Саратов, Россия Репутация: 15 Всего: 27 |
если я правильно понял, что речь идет о JTable (кстати в таком случае вопрос стоит задать в разделе по Java GUI), то можно повесится на изменение выделения строк (JTable#getSelectionModel().addSelectionListener(...)) и на изменение выделения колонок (JTable#getColumnModel().addColumnModelListener(...)). Можно объединить эти два листенера в одном классе и при изменении выделения проверять значение в модели таблицы и действовать соответствующим образом.
-------------------- ![]() |
|||
|
||||
skif18 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 358 Регистрация: 17.5.2007 Где: Молдова, Кишинев Репутация: 1 Всего: 1 |
fixxer, а примерчик или ссылку на что-то подобное не подбросишь? Автор опередил с темой ...
![]() -------------------- |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 38 Всего: 538 |
Ещё как вариант можно использовать MouseListener и rowAtPoint() + columnAtPoint() (поищи по форуму, примеры как их использовать я уже давал).
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
BlHol |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 126 Регистрация: 26.11.2005 Репутация: нет Всего: нет |
Спасибо. Попробую. Хотя, честно говоря, получилось через MouseListener, повешеным на таблицу с оценкой выделенной строки и столбца. Теперь появилась новая проблема. Нужно те ячейки, где число отличное от нуля как-то выделить (цветом, жирным шрифтом и т.д.). Усложняется все тем, что в таблице не только числовые данные. Причем, в разных строках и ячейках. Заранее спасибо. С уважением. Это сообщение отредактировал(а) BlHol - 14.1.2009, 13:09 |
|||
|
||||
Connie |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 382 Регистрация: 12.8.2008 Репутация: 8 Всего: 9 |
||||
|
||||
fixxer |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 672 Регистрация: 14.9.2006 Где: Саратов, Россия Репутация: 15 Всего: 27 |
-------------------- ![]() |
|||
|
||||
BlHol |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 126 Регистрация: 26.11.2005 Репутация: нет Всего: нет |
Спасибо! Реально, грамотно!
Сейчас, чуть подкорректирую и в код. Еще раз, огроменнейшее спасибо! |
|||
|
||||
BlHol |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 126 Регистрация: 26.11.2005 Репутация: нет Всего: нет |
fixxer
Еще один вопросик, если Вас не затруднит. Все, в общем, понятно.
Не совсем понятна необходимость повторного навешивания Листенера и повторной установки выделения (3 и 4 строки) И еще один вопросик. Есть ли смысл написать класс, который будет рендерить любую таблицу (в зависимости, скажем, от некоего флага), переданную в него или лучше просто каждый раз навешивать на новую таблицу новый рендерер? С уважением. Это сообщение отредактировал(а) BlHol - 14.1.2009, 20:33 |
|||
|
||||
fixxer |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 672 Регистрация: 14.9.2006 Где: Саратов, Россия Репутация: 15 Всего: 27 |
Внимательнее! Листенер присоединяется к различным источникам, изменение выделения сторок и выделения колонок, соответственно. По-поводу универсальности. Зачастую универсальные классы замусориваются в процесе разработки деталями и адаптациями к конкретным решениям. Думаю, что полезно руководствоваться тем, что класс должен хорошо выполнять одну конкретную хорошо очерченую задачу. (Single Responsibility). Но единого ответа тут быть не может - нужно решать в каждом конкретном случае. -------------------- ![]() |
||||
|
|||||
math64 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 5 Всего: 72 |
Нужно добавить TableModelListener (если есть возможность редактирования таблицы):
|
|||
|
||||
BlHol |
|
||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 126 Регистрация: 26.11.2005 Репутация: нет Всего: нет |
Это я видел, что к разным. Просто, в случае с
понятно, что вешается на столбец. А в случае с
это как-то не очень понятно, куда он вешается... |
||||||
|
|||||||
skif18 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 358 Регистрация: 17.5.2007 Где: Молдова, Кишинев Репутация: 1 Всего: 1 |
Пользовался этим. Работает. -------------------- |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |