java程序中如何实现在点击关闭窗口时,跳出是否确定关闭窗口的提示框

addWindowListener(newWindowAdapter(){publicvoidWindowClosing(WindowEvente){if(){Syste... addWindowListener(new
WindowAdapter()
{
public void WindowClosing(WindowEvent e)
{
if()
{System.exit(0);}
}
也就是上面if语句中应该填什么
展开
 我来答
ChineseThink
2011-03-05
知道答主
回答量:27
采纳率:0%
帮助的人:21.9万
展开全部
public class Test extends JFrame{
public Test(){
setBounds(200,100,200,300);
setTitle("测试");
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
JOptionPane.showMessageDialog(null, "是否关闭?");
}
});
}

public static void main(String []args){
new Test().setVisible(true);
}
}

希望会对你又帮助!
追问
public void windowClosing(WindowEvent e)          
{
JOptionPane.showConfirmDialog(buttonPanel, "是否关闭?");
}
我用的是showConfirmDialog,为什么我点击取消页面也会被关掉
追答
public class Test extends JFrame{
public Test(){
setBounds(200,100,200,300);
setTitle("测试");
// setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
int result=JOptionPane.showConfirmDialog(null, "你确定要退出本窗口不?", "Information", JOptionPane.YES_NO_OPTION);
if(result==JOptionPane.YES_NO_OPTION)
{
System.exit(0); //这里用这个比较合适,因为这样是直接退出程序,而dispose()只关闭窗体,而程序还没结束。 }
else
{
new Test().setVisible(true);
}
}
});
}

public static void main(String []args){
new Test().setVisible(true);
}
}
你再看看!!我刚学Java不久,有问题一起交流非常好的哦!
flyingFish211
2011-03-05 · TA获得超过2.1万个赞
知道大有可为答主
回答量:1.5万
采纳率:50%
帮助的人:1.1亿
展开全部
if(JOptionPane.showConfirmDialog(null, "Will you close?")==0){
System.exit();
}

null那里对应的是你那个组件,或者null都可以。
如果返回为0,表示用户选择了yes,否则为no
更多追问追答
追问
“null那里对应的是你那个组件,或者null都可以”你这里所说的“那个组件”是只哪个组件啊,就是我要关闭的那个页面吗?
追答
YES!

确定在其中显示对话框的 Frame;如果为 null 或者 parentComponent 不具有 Frame,则使用默认的 Frame
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
人类补完师
2011-03-05 · TA获得超过172个赞
知道答主
回答量:63
采纳率:0%
帮助的人:56.3万
展开全部
应该要再在监听中new一个Frame,再在里面加一个监听,相当于监听套监听
追问
麻烦能不能具体点 帮我写出来 你说的我不是太明白
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
LOLwzds
2018-02-27
知道答主
回答量:1
采纳率:0%
帮助的人:900
展开全部
setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
这句一定要有,不然点什么都会关闭窗口
然后用addWindowListener()就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
去啊杂现在
2018-01-14 · TA获得超过692个赞
知道小有建树答主
回答量:571
采纳率:31%
帮助的人:66.6万
展开全部

我弄明白了,是这样的:需要先设置默认关闭方式为不关闭,之后再重写关闭事件。

需要这么几句话:

1.设置默认关闭方式为不关闭(JFrame,JDialog都可以)

setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);

2.重写关闭按钮的操作

addWindowListener(new WindowAdapter()
{//窗口关闭时
    @Override
        public void windowClosing(WindowEvent e)
        {
            int i = JOptionPane.showConfirmDialog(null, "是否退出系统?","退出",JOptionPane.YES_NO_OPTION);
            if (i == 0)
            {//有两个按钮,是按钮返回值为0
                dispose();
            }
        }
});
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式