你可以写一个类重载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 {
// 这里你自己定义你要做的操作
}
}
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 {
// 这里你自己定义你要做的操作
}
}
你可以不使用这个方法,而是在捕获windowClosing()事件时,根据情况调用System.exit()方法。
(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();
}
}
f.setDefaultCloseOperation( JFrame.DO_NOTHING_ON_CLOSE );
然后根据确认对话框的结果,决定是否调用System.exit()