问题
How do I prevent a JMenuItem
from closing the menu when the JMenuItem
is clicked?
The JMenuItem
is enabled.
So this is the scenario, I have 3 JMenuItems
:
JMenuItem: A, B, C
;
C displays an integer X
.
A and B are used to increment or decrement X
by a value of 1.
If A or B is clicked, the default nature is that the menu will close upon click.
I want to be able to repeatedly click A or B and have the menu remain up, and perform the associated 'action' upon each click.
Thanks!
回答1:
First, using a menu to do this may be the wrong approach. JSpinner
seems more appropriate. However, to do this with a JMenuItem
you can subclass the MenuItemUI
of the LookAndFeel
you are using, and override the doClick(...)
method so that clearSelectionPath()
is not called, which closes the menu when the item is clicked.
Example, if you are using the Motif LookAndFeel
you can do this:
menuItem.setUI(new MotifMenuItemUI() {
@Override
protected void doClick(MenuSelectionManager msm) {
menuItem.doClick(0);
}
});
I haven't ever tried this myself but I think it will work.
来源:https://stackoverflow.com/questions/9198530/how-to-prevent-jmenuitem-from-closing-menu-upon-clicking-the-jmenuitem