Чтобы ответить на ваш вопрос о том, почему ваш индикатор выполнения не обновляется:
Ваш JProgressBar не обновляется, потому что вы блокируете Поток отправки событий (EDT) в вашем методе copyFiles () .
Вы никогда не должны блокировать EDT с помощью длительной операции.
Что происходит, когда actionPerformed обратный вызов вызывается из EDT, поэтому вы также вызываете copyFiles () из EDT.
Вы должны запустить copyFiles из другого потока.
Нужно ли использовать SwingWorker для правильной работы?
SwingWorker, действительно, будет одним из способов запуска copyFiles () код снаружи EDT.