按下Jmenu按钮时,使用Java的动作侦听器退出程序

克里斯·瓦拉斯(Kris Valas)

当用户点击退出JMenu项时,我正在尝试退出程序。

这是我用来执行动作侦听器的类:

public abstract class ExitListener implements ActionListener {
    public void exit(ActionEvent e) {
        if (e.getActionCommand().equals("exit")) {
            int reply = JOptionPane.showConfirmDialog(null, "Are you sure?", "Quit?", JOptionPane.YES_NO_OPTION);
            if (reply == JOptionPane.YES_OPTION) {
                System.exit(0);
            }
        }
    }
}

这是初始化按钮的方式:

menuBar = new JMenuBar();
gameMenu = new JMenu("Game");
this.setJMenuBar(menuBar);
menuBar.add(gameMenu);

// Creates the tabs for the Game menu and add's it to the game menu
exit = new JMenuItem("Exit");
gameMenu.add(exit);

当我选择菜单上的退出按钮时,什么也没有发生。

亚辛·哈亚杰(Yassin Hajaj)

你必须用 JMenuItem#addActionListener

exit.addActionListener(new ExitListener());

内还有一个错误ExitListener

应该调用重写的方法actionPerformed,而不是exit这将导致编译错误。


一种更简单的方法是使用匿名类甚至lambda表达式,因为您只想使用ExitListener一次。

exit.addActionListener(e -> {
        if (e.getActionCommand().equals("exit")){
           int reply = JOptionPane.showConfirmDialog(null, "Are you sure?", "Quit?", JOptionPane.YES_NO_OPTION);
                if (reply == JOptionPane.YES_OPTION){
                    System.exit(0);
                }
        }
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Java。JMenu的动作侦听器

对按钮使用动作侦听器

蓝牙设备按钮按下应在应用程序中触发Onclick侦听器

当用户按下“后退”按钮或做出新的意图时,停止位置侦听器活动

如何使用动作侦听器从按钮获取背景颜色

编写动作侦听器以关闭程序Java

多个单选按钮的动作侦听器

多个按钮的单个动作侦听器

在添加带有动作侦听器的按钮时,是否不允许使用void类型?

数组和动作侦听器Java

Java Hangman项目:动作侦听器

Java中的动作侦听器等待

动作侦听器Java问题

对所有按钮使用相同的回调或事件侦听器时,如何检查按下了哪个按钮

如何使Java程序在侦听器工作时等待?

如何使用动作侦听器来检查是否单击了某个按钮?

在活动上按下后退按钮后在片段中设置侦听器

动作属性上的按钮->添加更改侦听器

JDialog的动作侦听器,用于单击按钮

动态将动作侦听器添加到按钮

从动作侦听器设置按钮文本

关键侦听器仅在程序聚焦时退出循环(C ++)

动作侦听器中的动作侦听器错误

按下按钮时,如何从 Android APP 向 Node-Red 中的 UDP 侦听器发送硬编码字符串?

对话框在按下按钮时不会触发解雇侦听器

一类JAVA中的窗口侦听器和动作侦听器

JOptionPane操作侦听器在退出时发布

当用户在ah:form输入字段上按Enter时,通过ajax调用动作侦听器

使用Java的PI中的GPIO引脚侦听器导致动作突发事件