public void windowClosing (WindowEvent e)
{
JFrame frame = new JFrame();
int confirm = JOptionPane.showConfirmDialog (frame, "Exit game?", "Are you sure?", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);
if (confirm == JOptionPane.YES_OPTION)
{
dispose();
}
else
{
frame.setVisible(false);
}
}
Поэтому, когда пользователь нажимает кнопку закрытия, появляется всплывающая панель JOptionPane. Когда пользователь нажимает «Нет», JOptionpane должен исчезнуть, а затем вернуться к кадру, который он изначально отображал, но с моим кодом, даже когда я нажимаю No, оба кадра, один для JOptionPane и тот, который он сидит на, исчезают.Замена JOptionPane
одно:
- Я знаю, что я не должен создать новый JFrame для JOptionPane, но я попытался с помощью
this
для компонента, например:JOptionPane.showConfirmDialog (this, "...",...)
, когда пользователь нажимает на «Нет» JOptionPane является единственное, что должно исчезнуть (поэтому я установил его:this.setVisible(false);
), но когда я используюthis
, даже основной кадр исчезает, поэтому я просто решил создать новый фрейм для удовлетворения моих потребностей. Я не могу установить его в null, потому что мне нужно, чтобы он отображался в центре экрана. Если кто-нибудь может посоветовать мне, как с этим справиться, пожалуйста.
Почему вы делаете frame.setVisible (false)? Вам это действительно не нужно, JOptionPane исчезнет, когда вы нажмете «да» или «нет». – hbsrud
Является ли это «JDialog»? –
Почему вы создаете новый JFrame? вы можете просто поставить 'null' как параметр fisrt' show confirm dialog' вместо этого. – kajacx