Проблема обработки входных событий с JList в Jlist - PullRequest
2 голосов
/ 20 февраля 2012

У меня есть пользовательский рендерер ячеек для JList, который отображает вложенный JList внутри него с другим пользовательским рендерером ячеек, который отображает кнопку. Проблема, с которой я сталкиваюсь, заключается в том, что любые пользовательские вводы (например, щелчки мышью по кнопкам, действие прокрутки) не обрабатываются, а вложенный JList перестает отвечать на запросы (но он по-прежнему отображается правильно, когда я изменяю размер окна). Есть ли способ решить эту проблему?

1 Ответ

3 голосов
/ 20 февраля 2012

Как сказал camickr, рендереры просто рисуют изображение и не являются реальными компонентами.

Один из способов обойти это - использовать JTable с одним столбцом вместо JList, где вы можете установить CellEditors,какие являются реальными компонентами (но только после того, как эта ячейка получает фокус).

Но на самом деле может быть проще создать панель с панелью прокрутки, которая прослушивает события ListData из ListModel и добавляети удаляет ваши компоненты по мере необходимости.Это то, чем я в конечном итоге воспользовался в прошлый раз, когда у меня возникла эта проблема, она была немного более элегантной.

Хотя, если у вас есть только одна кнопка, JTable может работать довольно хорошо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...