java - JMenu Action 监听器

标签 java swing actionlistener jmenu

我想知道您能否测试一下是否单击了 JMenu(而非 JMenuItem)。我尝试向它添加一个 ActionListener,但它似乎无法识别它。我只需要它在按下 JMenu 按钮时执行操作,以便我可以在该菜单打开之前更改该菜单的 JMenuItems。也欢迎为获得此结果所做的所有工作!

谢谢

最佳答案

  • 对于 JMenu 使用 MenuListener

代码

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;

public class ActionExample {

    public ActionExample() {

        JMenu menu = new JMenu("Menu");
        menu.setMnemonic(KeyEvent.VK_M);
        menu.addMenuListener(new SampleMenuListener());
        JMenu menu1 = new JMenu("Tool");
        menu1.setMnemonic(KeyEvent.VK_T);
        menu1.addMenuListener(new SampleMenuListener());
        JFrame f = new JFrame("ActionExample");
        JMenuBar mb = new JMenuBar();
        mb.add(menu);
        mb.add(menu1);
        f.setJMenuBar(mb);
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.pack();
        f.setLocationRelativeTo(null);
        f.setVisible(true);
    }

    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {

            @Override
            public void run() {
                ActionExample actionExample = new ActionExample();
            }
        });
    }
}

class SampleMenuListener implements MenuListener {

    @Override
    public void menuSelected(MenuEvent e) {
        System.out.println("menuSelected");
    }

    @Override
    public void menuDeselected(MenuEvent e) {
        System.out.println("menuDeselected");
    }

    @Override
    public void menuCanceled(MenuEvent e) {
        System.out.println("menuCanceled");
    }
}

关于java - JMenu Action 监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9862165/

相关文章:

java - 如何使用 Java Swing 打印两列文本?

java - 将 Action 监听器添加到 JComboBox

java - 查找元素所在的 JFrame

java - 如何在玻璃板上画线?

java - 如何将 GWT 的 Google map 添加到 FormPanel 中

java - 无法从静态上下文中引用非静态方法 'inflate(byte[],int,int)'

java - 对多个 jButton 执行一项操作

java - Jtree 渲染器设置自定义图标不起作用

java - 使用 ServerSocket 启动服务器时 GUI 暂停

java - 尝试将 ActionListener 添加到 JButtons