The JMenuItem Class
Before discussing menus, we should introduce the JMenuItem
class. Figure 14-6 shows the class
diagram for the JMenuItem
component.
Figure 14-6. JMenuItem class diagram
A JMenuItem
serves as a wrapper
for strings and images to be used as elements in a menu. The JMenuItem
class is essentially a specialized
button and extends the AbstractButton
class. Its behavior, however, is somewhat different from standalone
buttons. When the mouse pointer is dragged over a menu item, Swing
considers the menu item to be selected. If the
user releases the mouse button while over the menu item, it is
considered to be chosen and should perform its action.
There is an unfortunate conflict in terminology here. Swing
considers a menu item selected when the mouse moves over it, as updated
by the MenuSelectionManager
and
classes that implement the MenuElement
interface. On the other hand,
Swing considers a button selected when it remains in one of two
persistent states, such as a checkbox button remaining in the checked
state until clicked again. So when a menu item is selected, its button
model is really armed. Conversely, when a menu item
is deselected, its button model is disarmed. Finally, when the user
releases the mouse button over the menu item, the button is considered
to be clicked, and the AbstractButton
’s doClick( )
method is invoked.
Menu Item Shortcuts
Menu items can take ...
Get Java Swing, 2nd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.