Search code examples
javaswinglook-and-feeljmenujmenuitem

Preventing JMenuItem from closing JMenu upon a click


How can I do something like this while I'm using multiple LAFs:

UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());

Solution

  • I've solved my problem this way:

    public class MyMenuItem extends JMenuItem {
    
        public MyMenuItem(String text) {
            super(text);
        }
    
        @Override
        protected void processMouseEvent(MouseEvent evt) {
            if (evt.getID() == MouseEvent.MOUSE_RELEASED  && contains(evt.getPoint())) {
                doClick();
                setArmed(true);
            } else
                super.processMouseEvent(evt);
        }
    
    }