 <p>I ran into an issue with the nice Joonas Pulakka's answer because the "UIManager lookandFeel" was ignored.</p> <p>I found the nice trick below on <a href="http://tips4java.wordpress.com/2010/09/12/keeping-menus-open/" rel="nofollow">http://tips4java.wordpress.com/2010/09/12/keeping-menus-open/</a> </p> <p>The point is to reopen immediatly the menu after it has been closed, it's invisible and keep the application look and feel and behavior.</p> <pre><code>public class StayOpenCBItem extends JCheckBoxMenuItem { private static MenuElement[] path; { getModel().addChangeListener(new ChangeListener() { @Override public void stateChanged(ChangeEvent e) { if (getModel().isArmed() &amp;&amp; isShowing()) { path = MenuSelectionManager.defaultManager().getSelectedPath(); } } }); } public StayOpenCBItem(String text) { super(text); } @Override public void doClick(int pressTime) { super.doClick(pressTime); MenuSelectionManager.defaultManager().setSelectedPath(path); } } </code></pre>