Я работаю над приложением Java Swing. У меня есть кнопка, действие которой запускает запрос в базе данных, а затем отображает результаты. Эти команды выполняются из прослушивателя кнопки «Выполнить». Насколько я понимаю, это означает, что поток, выполняющийся в этой точке, находится из EventQueue.Ожидание ввода мыши в Java Swing
Учитывая определенный ввод, мне нужно прекратить обработку и ждать, пока пользователь нажмет на участок. Я изо всех сил пытаюсь найти способ сделать это. Я посмотрел на все, но я не могу найти решение, которое работает. Я попытался создать новый поток, который ждет ввода пользователя (я называю join в этом потоке). Проблема в том, что это приводит к тому, что предыдущий поток (из EventQueue) ожидает. По какой-то причине щелчки мыши не вызывают прерывания, поэтому щелчки мыши никогда не захватываются.
Любая помощь будет высоко оценена. Заранее спасибо.
Все, что вам нужно сделать, это создать экземпляр SwingWorker, где длинный код базы данных находится в методе doInBackground(), а последующие обновления пользовательского интерфейса находятся в методе done() и выполняют этот поток SwingWorker в ActionListener вашей кнопки. –