当用户在Java Swing应用程序上单击关闭时如何启动弹出窗口

时间:2014-08-18 20:08:52

标签: java swing exit joptionpane

我的JFrame目前有setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

我是否可以更改此设置,以便在用户点击关闭时启动&#34;您确定吗?&#34; JOptionPane样式会弹出?< / p>

我该怎么做?

1 个答案:

答案 0 :(得分:3)

您需要添加WindowListener。这是一个例子:

public class Test {

    public static void main(String[] args) {
        final JFrame frame = new JFrame();
        JLabel label = new JLabel("Test");
        frame.getContentPane().add(label);
        frame.pack();

        frame.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);

        frame.addWindowListener(new WindowAdapter() {

            @Override
            public void windowClosing(WindowEvent ev) {
                int result = JOptionPane.showConfirmDialog(frame, "Sure?");

                if (result == JOptionPane.OK_OPTION) {
                    frame.dispose();
                }
            }
        });

        frame.setVisible(true);
    }
}