Java Swing-是否关闭框架(窗口)取决于弹出窗口的选择

Java Swing-是否关闭框架(窗口)取决于弹出窗口的选择,java,swing,Java,Swing,我尝试当用户试图以正常方式关闭窗口时(点击X),弹出窗口会显示“你确定要关闭此窗口吗?”然后如果他选择“否”,我希望窗口不关闭,无论他选择“是”还是“否” 此侦听器的当前代码是: frmContactarEspecialista.addWindowListener(new FrameWindowListener()); private class FrameWindowListener extends WindowAdapter { @Override

我尝试当用户试图以正常方式关闭窗口时(点击X),弹出窗口会显示“你确定要关闭此窗口吗?”然后如果他选择“否”,我希望窗口不关闭,无论他选择“是”还是“否”

此侦听器的当前代码是:

frmContactarEspecialista.addWindowListener(new FrameWindowListener());    

private class FrameWindowListener extends WindowAdapter {
        @Override
        public void windowClosing(WindowEvent arg0) {
            int salir = JOptionPane.showOptionDialog(frmContactarEspecialista, "Si cierra esta ventana se descartará el email, ¿continuar?", "Salir",
                    JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, null, null);

            if (salir != 0){

            }
        }
    }
在将我的帖子标记为副本后,我一直在尝试:

private class FrameWindowListener extends WindowAdapter {
        @Override
        public void windowClosing(WindowEvent arg0) {
            int salir = JOptionPane.showConfirmDialog(frmContactarEspecialista, "Si cierra esta ventana se descartará el email, ¿continuar?", "Salir",
                    JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);

            if (salir == JOptionPane.NO_OPTION) {
                System.out.println("do nothing");
            }
        }
    }
它会打印“不做任何事”,但仍会关闭窗口

如果无法关闭窗口,我应该在
中更改或放入什么

谢谢,我找到了答案! 首先,你必须在你的框架中添加一些东西

nameofyourframe.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
所以,当你按X时,窗口根本不会关闭。 现在让我们来看看你的听众

if(salir != 0){
    nameofyourframe.dispose();
}

因此,如果答案是肯定的,它将关闭您的程序和窗口,如果没有,什么也不会发生

可能是hi@iginoboff的重复,我试过了,它一直在关闭,加上idk在dispose()方法中放什么首先你应该像jFrame.setDefaultCloseOperation(jFrame.DO\u NOTHING\u on\u CLOSE)一样设置你的框架;好的@newuserua_ext起作用了当选择YES时,我现在必须在if中输入什么?如果YES,你应该调用dispose();或者系统。退出(0)方法。您好,谢谢,但我不想关闭整个程序,只想关闭我所在的窗口