菜单上的java动作监听器,而不是菜单项

Иго*_*чић 4 java swing menu onclick actionlistener

我需要启蒙.

如何添加动作actionListener事件绑定到菜单,而不绑定到菜单ITEM这里是演示代码,有效(在menuITEM上)..

menuFileItem.addActionListener(
            new ActionListener(){
                public void actionPerformed(ActionEvent e)
                {
                    System.out.println("It works");
                }
            }
        );
Run Code Online (Sandbox Code Playgroud)

但是当我尝试相同的,但只是在菜单本身它不起作用!

menuFile.addActionListener(
            new ActionListener(){
                public void actionPerformed(ActionEvent e)
                {
                    System.out.println("Plz work... :( ");
                }
            }
        );
Run Code Online (Sandbox Code Playgroud)

可以将监听器添加到菜单中吗?我教过听众可以添加到一切.

TPe*_*ete 15

您可以添加一个ActionListenera,JMenu因为此方法是继承的AbstractButton.(JMenu文档)

JMenu menu = new JMenu("MyMenu");
menu.addActionListener(new ActionListener(){...});
Run Code Online (Sandbox Code Playgroud)

但是,它不打算以这种方式使用:JMenu忽略ActionEvent.你应该使用MenuEventMenuListener不是.

JMenu menu = new JMenu("MyMenu");
menu.addMenuListener(new 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");

        }
    });
Run Code Online (Sandbox Code Playgroud)