Для поля со списком вы хотите добавить ItemListener
в поле со списком для обработки изменения. Вы должны создать какой-то класс контроллера (обычный класс, который implements ItemListener
) и добавить его в качестве слушателя. Затем в методе itemStateChanged
вы программируете свою логику. Возможно, вы захотите дать ItemListener
созданную вами ссылку на вашу панель, чтобы она могла внести соответствующие изменения.
Еще одна заметка. Если вы читаете HTML-файл на лету, когда выбран раскрывающийся список, пользовательский интерфейс будет зависать до завершения этой операции. Это происходит потому, что эти события запускаются и выполняются в потоке диспетчеризации событий, главном потоке для взаимодействия с пользователем. Чтобы избежать этого, вы можете заранее проанализировать HTML-файл в памяти или создать отдельный поток в событии itemStateChanged
для анализа HTML-файла. Просто запомните, когда вы закончите, чтобы использовать SwingUtilities.invokeLater
, чтобы получить еще один работающий объект в потоке диспетчеризации событий для обновления выпадающего списка. Все обновления пользовательского интерфейса Swing должны выполняться из потока рассылки событий.