Полагаю, вы ждете, пока пользователь нажмет какую-то кнопку, постоянно проверяя, какая кнопка нажата.
"Мне нужно, чтобы пользователь дождался нажатия кнопки ОК или Отмена, не останавливая окно формы / диалога".
Может быть, вам следует использовать четные уведомления, когда пользователь нажимает на что-то, а не ждет, пока он нажмет кнопку - может быть, есть какое-то событие OnWindowExit?
Или может быть что-то подобное:
MyPanel panel = new MyPanel(...);
int answer = JOptionPane.showConfirmDialog(
parentComponent, panel, title, JOptionPane.YES_NO_CANCEL,
JOptionPane.PLAIN_MESSAGE );
if (answer == JOptionPane.YES_OPTION)
{
// do stuff with the panel
}
В противном случае вы можете увидеть, как обрабатывать события окна, особенно windowClosing(WindowEvent)
здесь