Посмотрите на это: Простые фоновые задачи .
Кажется, у тебя две проблемы. Во-первых, что касается количества кода, необходимого при использовании SwingWorker
: вам нужно создать подкласс SwingWorker
для каждого действия, но это не значит, что они должны быть верхнего уровня, именованными классами или своими собственными. файлы. Они могут быть анонимными классами, как показано в статье, так что код находится в коде обработки событий вашего графического интерфейса.
Во-вторых, в отношении создания экземпляров SwingWorker
объектов: вы не можете повторно использовать SwingWorker
, но поскольку задания выполняются в результате действий пользователя (например, нажатия кнопки), вы не должны столкнуться с какой-либо производительностью проблемы с созданием новых объектов каждый раз.