Я думаю, что вам может понадобиться модальный JDialog . Они довольно легко блокируют взаимодействие с пользователем для всего вашего приложения, и у вас есть дополнительный контроль.
У фрагмента кода, который вы разместили, могут возникнуть проблемы, если операция сохранения займет больше 2 секунд. Я бы посоветовал вызвать вашу функцию save () в том месте, где у вас есть Thread.sleep (). Таким образом, вы знаете, что независимо от того, сколько времени занимает сохранение, пользовательский интерфейс будет заблокирован.