JAVA,点“退出系统”后弹出对话框,点确定退出,点取消返回

import javax.swing.*;
import javax.swing.border.*;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
public class Film implements ActionListener
{
JFrame f = null; //类属性
public Film() //构造方法
{
f = new JFrame("电影信息管理系统"); //创建一个顶层容器
Container contentPane = f.getContentPane();//获得其内容面板
JPanel buttonPanel = new JPanel(); //创建一中间容器JPanel
JButton b = new JButton("信息登记"); //创建一原子组件——按钮
b.addActionListener(this); //为按钮添加事件监听器对象
buttonPanel.add(b); //将此按钮添加到中间容器
b = new JButton("退出系统"); //再创建一按钮
b.addActionListener(this); //为按钮增加事件监听器
buttonPanel.add(b); //将按钮添加到中间容器
buttonPanel.setBorder(BorderFactory.createTitledBorder(//设置中间容器边框
BorderFactory.createLineBorder(Color.blue,3),
"电影信息操作界面",TitledBorder.CENTER,TitledBorder.TOP));
contentPane.add(buttonPanel,BorderLayout.CENTER);//将中间容器添加到内容面板
JMenuBar mBar=new JMenuBar(); //创建菜单条
JMenu selection=new JMenu("选项");
JMenuItem regist=new JMenuItem("信息登记");
JMenuItem delete=new JMenuItem("信息删除");
JMenuItem sum=new JMenuItem("统计");
selection.add(regist);
selection.add(delete);
selection.add(sum);
JMenu sys=new JMenu("系统");
JMenuItem exit=new JMenuItem("退出系统");
sys.add(exit);
mBar.add(selection);
mBar.add(sys);
f.setJMenuBar(mBar); //为窗体增加菜单
regist.addActionListener(this); //为菜单添加事件监听器
delete.addActionListener(this);
sum.addActionListener(this);
exit.addActionListener(this);
f.pack();
f.setVisible(true);
f.addWindowListener(new WindowAdapter() {//为窗口操作添加监听器
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
这是我现在的代码,需要怎么修改!跪求大神啊!

第1个回答  2017-11-23
public void initWin(){ 
    this.setBounds(300, 300, 500, 400); 
    this.addWindowListener(new WindowAdapter(){ 
      public void windowClosing(WindowEvent e) { 
        super.windowClosing(e);
         int exi = JOptionPane.showConfirmDialog (null, "确定退出?", "友情提示", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);
                if(exi == JOptionPane.YES_OPTION)
                {
                    System.exit (0);
                }
                else
                {
                    return;
                }
            }
        });
      layoutWin(); 
      this.setVisible(true); 
  }

直接将这个函数加入到你所要退出系统的程序代码之中,虽然说这个函数有个BUG ,就是按了返回 他仍然退出系统,不过,看了代码的逻辑应该是不会出现这种情况,所以,有懂的大佬麻烦说下~~~共同学习0.0 蛤蛤

第2个回答  2014-01-01
既然exit.addActionListener(this);把事件委派给this对象,那么就应该Film 类中实现ActionListener接口中
判断点击了exit对象时弹出一个确认对话框(好像是JOptionPane中的什么方法,具体查API吧)判断返回值后再进行操作
如果是确定则System.exit(0)本回答被提问者采纳
相似回答