Обычно слушатель работает так, что он «гаснет» каждый раз, когда происходит ожидаемое событие. Если бы мне пришлось размышлять, это недоразумение с вашей стороны.
орое время назад я спросилэтот вопрос, Все решения являются обходными.
Теперь этого не может быть. Я чувствую, что здесь что-то не так, но я не могу сказать, является ли модель Swing MVC концептуально неправильной или это мое мышление концептуально неверно.
Здесь проблема снова. Я используюJList
реализовать список миниатюр для страниц документа. Если пользователь выбирает другой эскиз из списка, эта страница загружается. Для этого я добавилListSelectionListener
кJList
, который при изменении выбора загружает эту страницу. Но пользователь также может изменить страницу, используя другой элемент управления. Естественно, я хочу, чтобы это было отражено в списке миниатюр, выбрав эту страницу здесь. Так что яsetSelectedIndex()
обновитьJList
, К сожалению, это имеет нежелательный эффект отListSelectionEvent
что заставляет слушателя перезагрузить страницу.
Что здесь не так? Я просто изменил модель откуда-то еще, поэтому, естественно, я хочу, чтобы представление само обновлялось, но я не хочу, чтобы оно вызывало события. Разве Swing не реализует MVC правильно? Или я здесь упускаю точку?