如何在点击&#34时关闭窗口;退出"菜单项()?

时间:2015-10-08 13:32:12

标签: java swing jmenu jmenuitem jmenubar

public class Manubar extends JFrame {

    JMenuBar jmb;
    JMenu jm;
    JMenu jm2;
    JMenuItem jmt;
    JMenuItem jmt2;

    public Manubar() {
        setSize(500, 500);

        jmb = new JMenuBar();
        jm = new JMenu("file");
        jm2 = new JMenu("edit");
        jmt = new JMenuItem("copy");
        jmt2 = new JMenuItem("exit");
        jmb.add(jm);
        jmb.add(jm2);
        jm.add(jmt);
        jm.add(jmt2);
        add(jmb, BorderLayout.NORTH);
        setVisible(true);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }

    public static void main(String[] args) {
        new Manubar();
    }
}

这里我想点击退出菜单项时关闭窗口, 在关闭之前,它应该显示一个弹出窗口,询问是否在用户单击“确定”时关闭,然后它应该关闭。

2 个答案:

答案 0 :(得分:3)

这是您的完整解决方案,

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;

public class Manubar extends JFrame implements ActionListener {

    JMenuBar jmb;
    JMenu jm;
    JMenu jm2;
    JMenuItem jmt;
    JMenuItem jmt2;

    public Manubar() {
        setSize(500, 500);

        jmb = new JMenuBar();
        jm = new JMenu("file");
        jm2 = new JMenu("edit");
        jmt = new JMenuItem("copy");
        jmt2 = new JMenuItem("exit");
        jmb.add(jm);
        jmb.add(jm2);
        jm.add(jmt);
        jm.add(jmt2);
        add(jmb, BorderLayout.NORTH);
        setVisible(true);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        jmt2.addActionListener(this);
    }

    public static void main(String[] args) {
        new Manubar();
    }

    @Override
    public void actionPerformed(ActionEvent e) {

       if("exit".equals(e.getActionCommand())){

         int dialogButton = JOptionPane.YES_NO_OPTION;
         JOptionPane.showConfirmDialog (null, "Would You Like to Save your Previous Note First?","Warning",dialogButton);

         if(dialogButton == JOptionPane.YES_OPTION){
            System.exit(NORMAL);
         }

    }

    }

}

答案 1 :(得分:2)

  

这里我要关闭窗口,当我点击退出菜单项时,同样在关闭之前,它应该显示一个弹出窗口,询问是否关闭,如果用户点击OK然后它应该关闭。

结帐Closing an Application。它向您展示了如何显示JOptionPane以确认首先关闭应用程序。

它显示:

  1. 使用WindowListener的基本方法
  2. 使用包含的自定义类
  3. 的简化方法