关于JAVA的JOptionPane.showConfirmDialog的小问题 5

我想在关闭窗口时弹出对话框,提醒是否真的要关闭。可是对话框在点击取消时,主窗口也还是关闭了,请问应该怎么修改??代码:importjava.awt.event.Actio... 我想在关闭窗口时弹出对话框,提醒是否真的要关闭。可是对话框在点击取消时,主窗口也还是关闭了,请问应该怎么修改??
代码:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
public class TestJoptionDialog extends JFrame {
public TestJoptionDialog() {
JButton jb = new JButton("输入");
this.add(jb);
jb.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
String str=JOptionPane.showInputDialog("请输入你要的的东西");
System.out.println(str);

}
});
JOptionPane.showMessageDialog(null, "程序正在开始运行");
this.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {

if (0== (JOptionPane.showConfirmDialog(
TestJoptionDialog.this, "你真的要结束吗?!", "结束程序",
JOptionPane.OK_CANCEL_OPTION,
JOptionPane.WARNING_MESSAGE))) {
dispose();
System.exit(0);
}
else if(2== (JOptionPane.showConfirmDialog(
TestJoptionDialog.this, "你真的要结束吗?!", "结束程序",
JOptionPane.OK_CANCEL_OPTION,
JOptionPane.WARNING_MESSAGE)))
{

}
}
});
this.setSize(600, 600);
this.setVisible(true);
}
public static void main(String[] args) {
TestJoptionDialog ew = new TestJoptionDialog();
}
}
展开
 我来答
相知有术
2014-04-25 · TA获得超过311个赞
知道小有建树答主
回答量:174
采纳率:0%
帮助的人:174万
展开全部

你要手动的判断用户点的是确认还是取消,你说的这个意思,我写过一个,贴给你看看哈

public void exit() {
    
    // 弹出对话框,警告文件为保存,提示是否保存
      int choice = JOptionPane.showConfirmDialog(jframe, "文件已修改,是否保存?",
"提示", JOptionPane.YES_NO_CANCEL_OPTION,
JOptionPane.QUESTION_MESSAGE);
        switch (choice) {
        case JOptionPane.YES_OPTION:// 选择“是”
            saveAs();// 另存为
            break;
case JOptionPane.NO_OPTION:// 选择“否”
    System.exit(0);// 退出
    break;
case JOptionPane.CANCEL_OPTION:// 选择“取消”
        break;
}
    
}



在你的windowClosing方法内部,调用上面的方法,或者直接把方法体弄进去就可以了,也就是说,你必须要判断用户选择的是yes还是no,并作出相应的处理。求个采纳

馒头和小笼包
2014-04-25 · TA获得超过163个赞
知道小有建树答主
回答量:233
采纳率:0%
帮助的人:151万
展开全部
else if(2== (JOptionPane.showConfirmDialog(
TestJoptionDialog.this, "你真的要结束吗?!", "结束程序",
JOptionPane.OK_CANCEL_OPTION,
JOptionPane.WARNING_MESSAGE)))
{
return;
}
试试加个return;
追问
还是不行 - -
追答
事件冒泡?
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式