С циклом while мой текст не обновляется
Скорее всего, вы запустили свой цикл в EDT (Event Dispatching Thread) . Это препятствует обновлению пользовательского интерфейса. Попробуйте вместо этого запустить свой код в другом потоке. SwingWorker
может быть одним из вариантов, создание другого механизма Thread или ThreadPool (служба исполнителей) - это еще одно решение. Просто убедитесь, что все ваши обновления для пользовательского интерфейса выполняются в EDT (например, перемещая их в блок EventQueue.invokeLater
)
См. Также эту ссылку, в которой приведен пример того, как правильно использовать SwingWorker