你可以写一个类重载JOptionPane的这个方法
public static int showConfirmDialog(Component parentComponent,
                                    Object message)
                             throws HeadlessException如:
public class MyOptionPane extends JOptionPane {
    public static int showConfirmDialog(Component parentComponent,
                                    Object message)
                             throws HeadlessException {
    // 这里你自己定义你要做的操作
}
 
}

解决方案 »

  1.   

    我想是这样的,你对JFrame使用了setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE )方法或者WindowConstants.DISPOSE_ON_CLOSE,这将导致JFrame关闭。
    你可以不使用这个方法,而是在捕获windowClosing()事件时,根据情况调用System.exit()方法。
      

  2.   

    同意 iwantiten(iwantit) 
      

  3.   

    呵呵,iwantiten(iwantit)说的我没有理解什么意思!(呵呵,看来是我的智商太低了!)你说我调用了EXIT_ON_CLOSE这个方法。呵呵,是的。在我的程序中我的确用这个,因为如果我不用这个的话,默认的方式是HIDE_ON_CLOSE,这个选项只能将关闭按钮的属性设置为“隐藏”JFrame。但是如果真的像这样设置了话,那么当我希望程序退出的时候点击哪个关闭按钮。实现的就是隐藏JFrame,但是实际情况却没有关闭这个程序(呵呵,个人的观点)。在系统的进程里还是会有那个程序的。而我所希望的是,在点击关闭按钮的时候,能给一个提示(“是”、“否”),然后点击“否”的时候,能撤销“关闭JFrame”这个操作。而不是将JFrame隐藏起来。而对于 weimenren 所说的,我还是没有明白(呵呵,看来真的是我的智商的问题了)你说的方法,我不是到是否可行(应该没有问题),但是我不知道怎么运用。你能不能将你的方法变换成代码,加到下面这个代码里啊!谢谢你啊!呵呵!
    (Test.java)
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    public class Test
    {
    JFrame frame;
    Test()
    {
    frame=new JFrame();
    frame.setSize(300,200);
    frame.setVisible(true);
    frame.setDefaultCloseOperation(frame.EXIT_ON_CLOSE);
    }
    public static void main(String args[])
    {
    new Test();
    }
    }呵呵,iwantiten(iwantit)说的我没有理解什么意思!(呵呵,看来是我的智商太低了!)你说我调用了EXIT_ON_CLOSE这个方法。呵呵,是的。在我的程序中我的确用这个,因为如果我不用这个的话,默认的方式是HIDE_ON_CLOSE,这个选项只能将关闭按钮的属性设置为“隐藏”JFrame。但是如果真的像这样设置了话,那么当我希望程序退出的时候点击哪个关闭按钮。实现的就是隐藏JFrame,但是实际情况却没有关闭这个程序(呵呵,个人的观点)。在系统的进程里还是会有那个程序的。而我所希望的是,在点击关闭按钮的时候,能给一个提示(“是”、“否”),然后点击“否”的时候,能撤销“关闭JFrame”这个操作。而不是将JFrame隐藏起来。而对于 weimenren 所说的,我还是没有明白(呵呵,看来真的是我的智商的问题了)你说的方法,我不是到是否可行(应该没有问题),但是我不知道怎么运用。你能不能将你的方法变换成代码,加到下面这个代码里啊!谢谢你啊!呵呵!
    (Test.java)
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    public class Test
    {
    JFrame frame;
    Test()
    {
    frame=new JFrame();
    frame.setSize(300,200);
    frame.setVisible(true);
    frame.setDefaultCloseOperation(frame.EXIT_ON_CLOSE);
    }
    public static void main(String args[])
    {
    new Test();
    }
    }呵呵,iwantiten(iwantit)说的我没有理解什么意思!(呵呵,看来是我的智商太低了!)你说我调用了EXIT_ON_CLOSE这个方法。呵呵,是的。在我的程序中我的确用这个,因为如果我不用这个的话,默认的方式是HIDE_ON_CLOSE,这个选项只能将关闭按钮的属性设置为“隐藏”JFrame。但是如果真的像这样设置了话,那么当我希望程序退出的时候点击哪个关闭按钮。实现的就是隐藏JFrame,但是实际情况却没有关闭这个程序(呵呵,个人的观点)。在系统的进程里还是会有那个程序的。而我所希望的是,在点击关闭按钮的时候,能给一个提示(“是”、“否”),然后点击“否”的时候,能撤销“关闭JFrame”这个操作。而不是将JFrame隐藏起来。而对于 weimenren 所说的,我还是没有明白(呵呵,看来真的是我的智商的问题了)你说的方法,我不是到是否可行(应该没有问题),但是我不知道怎么运用。你能不能将你的方法变换成代码,加到下面这个代码里啊!谢谢你啊!呵呵!
    (Test.java)
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    public class Test
    {
    JFrame frame;
    Test()
    {
    frame=new JFrame();
    frame.setSize(300,200);
    frame.setVisible(true);
    frame.setDefaultCloseOperation(frame.EXIT_ON_CLOSE);
    }
    public static void main(String args[])
    {
    new Test();
    }
    }
      

  4.   

    默认是hide,你可以设置为do nothing呀
    f.setDefaultCloseOperation( JFrame.DO_NOTHING_ON_CLOSE );
    然后根据确认对话框的结果,决定是否调用System.exit()