Dice Hunter
Dice Hunter

Reputation: 25

Java JMenu actionPerformed doesn't work

So, I've implemented anonymous action listener to JMenu component, so I'm wonder is it possible for JMenu to do some action with out JMenuItems in it, just JMenu, for example... Exit?

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

Upvotes: 2

Views: 3297

Answers (1)

BackSlash
BackSlash

Reputation: 22233

Use a MenuListener instead of an 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) {
    }
});

From Oracle: JMenu ignores ActionEvent

Upvotes: 6

Related Questions