Добрый день. Я пишу приложение с графическим интерфейсом используя Swing. По нажатию кнопки мне необходимо обращаться к базе данных (допустим, получить все записи из таблицы). И, чтобы интерфейс был интерактивен во время запроса, мне необходимо исполнять действия с БД в отдельном потоке. Пока что мне в голову пришла только одна мысль : по нажатию определенной кнопки запускать новый поток так
someButton.addActionListener((ActionEvent e) -> {
new Thread(() -> {}); // в теле лямбды написать метод для БД
})
Можно ли сделать лучше?
Используйте CompleteableFuture. Запустили, получили результат, в обработчике сделали invokeLater в UI поток с результатом.
В Вашем случае, очень подойдет абстрактный класс SwingWorker в нем присутствуют методы для обработки в background-е, а так же методы по завершению работы.
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники