Вопрос

Я использую JFrame как всплывающее окно из основного фрейма, где пользователь должен ввести некоторую информацию, а затем нажать OK.Но проблема в том, что как только этот подкадр откроется, я хочу, чтобы программа игнорировала любой другой сигнал до тех пор, пока не будет нажата кнопка OK, аналогично тому, как это делается с помощью JOptionPanes.Как и сейчас, вы могли бы нажать на кнопку, чтобы открыть подкадр несколько раз, получив таким образом несколько кадров, но это не является намерением (это даже вызывает множество ошибок).

Я мог бы решить это с помощью логического значения, которое становится истинным после нажатия кнопки OK, но это не кажется классным способом исправить это.Я чувствую, что должен быть какой-то другой способ сделать это, поскольку я вижу желаемый эффект, исходящий от моих JOptionPanes, но не могу добраться до него.

Ваше здоровье.

Это было полезно?

Решение

Вам нужен JDialog с modal = true.Из Javadocs:

modal - указывает, блокирует ли диалоговое окно пользовательский ввод в другие окна верхнего уровня при отображении.

Другие советы

Просто измените JFrame к a JDialog.

Затем в конструкторе используйте эту строку:

setModal(true);

Затем ваше приложение будет блокироваться до тех пор, пока диалоговое окно не будет закрыто.

Возможно, вы захотите заглянуть в JOptionPane.showInputDialog() если ваши пользователи просто вводят String.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top