如何在单击菜单项()时关闭窗口"exit"?


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();
    }
}

在这里我想关闭窗口当我点击退出菜单项,在关闭之前,它应该显示一个弹出框询问是否关闭,如果用户点击OK,那么它应该关闭。

这里我想关闭窗口,当我点击退出菜单项,也在关闭之前,它应该显示一个弹出询问是否关闭,如果用户点击确定,那么它应该关闭。

签出关闭应用程序。它向您展示了如何首先显示JOptionPane来确认关闭应用程序。

显示了

:

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

这是您的完整解决方案,

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);
         }
    }
    }
}

相关内容

最新更新