Java JMenu actionPerformed不起作用

时间:2013-05-21 22:07:17

标签: java swing user-interface actionlistener jmenu

所以,我已经为JMenu组件实现了匿名动作监听器,所以我想知道JMenu可以用JMenuItems做一些动作,只有JMenu,例如......退出?

@Override
    public void menuBarItemExit(JMenuBar menubar) {
        exitMenuItem = new JMenu("Exit");
        exitMenuItem.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                System.exit(0);
            }
        });
        menubar.add(exitMenuItem);
    }

1 个答案:

答案 0 :(得分:5)

使用MenuListener代替ActionListener

exitMenuItem.addMenuListener(new MenuListener() {
    @Override
    public void menuSelected(MenuEvent e) {
        System.exit(0);
    }

    @Override
    public void menuDeselected(MenuEvent e) {
    }

    @Override
    public void menuCanceled(MenuEvent e) {
    }
});

来自Oracle:JMenu ignores ActionEvent