Мне кажется, что вы делаете какие-то медленные операции ввода-вывода или вычисления, из-за которых ваш графический интерфейс перестает отвечать на запросы.
Что вам нужно сделать, так это запустить долго выполняющиеся процессы в другом потоке.
Стандартный способ сделать это с классом SwingWorker
.
В учебниках по Java есть несколько замечательных ресурсов и руководств по правильному использованию SwingWorker
.
.
Здесь и здесь - это ссылка на другой вопрос, который, на мой взгляд, может быть похожим.
Такое поведение, которое вы видите, является результатом того, что ваш длительный процесс блокирует поток, который GUI использует для перекраски. Таким образом, пока ваша задача выполняется, графический интерфейс не может перекрасить ваш JFrame
, и он перестает отвечать на запросы.