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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> неверное выделение в JTable 
:(
    Опции темы
val_vp
Дата 25.5.2009, 13:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 15.11.2006
Где: Днепродзержинск

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



Доброго времени суток, 
у меня довольно странная ошибка, вот её суть:
Есть таблица в которой содержиться некоторое кол-во строк (не обязательно много, я воспроизводил при 5-30). Ячейки таблицы не редектируемые, таблица допускает множественное выделение, согласно бизнес требований, при определенных действиях ("подтверждение" или "отказ") выделенные строки таблицы не отображаются, а выделение получает ближайшая строка, т.е. стоит фильтр управляющий видимостью "подтвержденых" или "отказаннх" строк.

баг проявляется так - при неоднократном выделении нескольких строк и их "подтверждении", может, хотя и крайне редко (приходиться до 10 раз повторят одно и тоже действие), случится сбой, т.е. ранее выделенные строки сохраняют выделение и не "подтверждаются" вместо этого в метод отвечающий за "подтверждение" выделенных строк приходит, как выделенная, строка с индексом 0, что соответственно серьёзный баг, т.к. "подтверждение" получили не те строки.

у нас на проекте свой ГУЙ-й набор (точнее можно наверное даже фрейморком назвать), в него входят и таблицы, и модельки для таблиц, и механизм управления выделением в таблицах, т.н. SelectionKeeper-ы, вот какая чихарда с индексами выделенных строк происходит (в таблице оставалось 4 строки):

Нормальный кейс
действие
индекс --- комент

открыли модуль
0 --- по умолчанию выбирает верхнюю строку
обновили таблицу
0 --- отвечает кнопка update, нужно сделать, что б в таблице были свежие данные, также выделяется верхняя строка (индекс 0)

выделяю 3,4-ю строки 
2 ---  
3 --- собственно выделенными значатся правильные строки

"подтверждение"
2 --- 
3 --- подтверждение, на "подтверждение" идут данные из 2-х строк 2,3

после "подтверждения"
0 ---
0 --- возвращается выделение на 0-ю строку (это поумолчанию поведение таблицы как я понимаю) только почему-то 2 раза ? 
1 ---
1 --- выделение переходит на ближайшую строку по правилам сохранения "выделения", т.к. строки 2,3 теперь не отображаються

Баг (тоже 4 стоки осталось)
обновили таблицу
0 --- выделяется верхняя строка (индекс 0)

выделяю 3,4-ю строки 
2 ---
3 --- вроде выделил их
0 --- 
0 --- и прошел сброс выделения на верхнюю строку !!!

"подтверждение"
0 --- на "подтверждение" пошла неправильно выделенная 0-я строка !!!

после "подтверждения"
0 --- 
0 --- возвращается выделение на 0-ю строку, которой теперь стала 1-я
2 --- 
1 --- 
2 --- далее непонятно как выбирает выделенные строки и почему не сбросило выделение?

метод реализующий "подтверждение" --- вызывается листенером на кнопку "подтверждение"

Ух, написал smile

А вопрос такой - есть ли методика отлова таких багов ? правильно ли я понимаю что проблемы в потоках, т.е. отрисовка и обработчик, выполняющиеся в разных потоках и приводят к такой проблеме ? или это проблема конкретной jdk, на проекте используется 1.4.2_08 (но вот я не очень приуспел в поиске багов swing-а) ?

Это сообщение отредактировал(а) val_vp - 25.5.2009, 13:22
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.0814 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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