关于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();
}
} 展开
代码:
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();
}
} 展开
2个回答
展开全部
你要手动的判断用户点的是确认还是取消,你说的这个意思,我写过一个,贴给你看看哈
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,并作出相应的处理。求个采纳
展开全部
else if(2== (JOptionPane.showConfirmDialog(
TestJoptionDialog.this, "你真的要结束吗?!", "结束程序",
JOptionPane.OK_CANCEL_OPTION,
JOptionPane.WARNING_MESSAGE)))
{
return;
}
试试加个return;
TestJoptionDialog.this, "你真的要结束吗?!", "结束程序",
JOptionPane.OK_CANCEL_OPTION,
JOptionPane.WARNING_MESSAGE)))
{
return;
}
试试加个return;
追问
还是不行 - -
追答
事件冒泡?
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询