mytask () // выполняет почти 30 минут
Ваша долгосрочная задача должна выполняться в отдельном потоке. Если вы вызываете долго выполняющуюся задачу в ActionListener, то графический интерфейс будет зависать до завершения выполнения задачи.
Прочтите раздел из учебника по Swing на Параллелизм для получения дополнительной информации. Возможно, вы захотите использовать SwingWorker
для этой задачи.
Я добавил приведенный ниже код в кнопку actionPerformed function. Он не отключает / делает его недоступным для редактирования
Если вы уже вызываете задачу в отдельном потоке, это означает, что у вас нет ссылки на текстовое поле, в которое вы добавляете фрейм. Может быть, вы создали два экземпляра.