|
JavaTM 2 Platform Std. Ed. v1.3 |
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Object
|
+--java.awt.Component
|
+--java.awt.Container
|
+--javax.swing.JComponent
|
+--javax.swing.AbstractButton
|
+--javax.swing.JMenuItem
|
+--javax.swing.JMenu
An implementation of a menu -- a popup window containing
JMenuItems that
is displayed when the user selects an item on the JMenuBar.
In addition to JMenuItems, a JMenu can
also contain JSeparators.
In essence, a menu is a button with an associated JPopupMenu.
When the "button" is pressed, the JPopupMenu appears. If the
"button" is on the JMenuBar, the menu is a top-level window.
If the "button" is another menu item, then the JPopupMenu is
"pull-right" menu.
For information and examples of using menus see How to Use Menus, a section in The Java Tutorial. For the keyboard keys used by this component in the standard Look and Feel (L&F) renditions, see the JMenu key assignments.
Warning: Serialized objects of this class will not be compatible with future Swing releases. The current serialization support is appropriate for short term storage or RMI between applications running the same version of Swing. A future release of Swing will provide support for long term persistence.
JMenuItem,
JSeparator,
JMenuBar,
JPopupMenu, Serialized Form| Inner Class Summary | |
protected class |
JMenu.AccessibleJMenu
This class implements accessibility support for the JMenu class. |
protected class |
JMenu.WinListener
A listener class that watches for a popup window closing. |
| Inner classes inherited from class javax.swing.JMenuItem |
JMenuItem.AccessibleJMenuItem |
| Inner classes inherited from class javax.swing.AbstractButton |
AbstractButton.AccessibleAbstractButton, AbstractButton.ButtonChangeListener |
| Inner classes inherited from class javax.swing.JComponent |
JComponent.AccessibleJComponent |
| Inner classes inherited from class java.awt.Container |
Container.AccessibleAWTContainer |
| Inner classes inherited from class java.awt.Component |
Component.AccessibleAWTComponent |
| Field Summary | |
protected JMenu.WinListener |
popupListener
The window-closing listener for the popup. |
| Fields inherited from class javax.swing.JComponent |
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW |
| Fields inherited from class java.awt.Component |
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT |
| Fields inherited from interface javax.swing.SwingConstants |
BOTTOM, CENTER, EAST, HORIZONTAL, LEADING, LEFT, NORTH, NORTH_EAST, NORTH_WEST, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WEST |
| Fields inherited from interface java.awt.image.ImageObserver |
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH |
| Constructor Summary | |
JMenu()
Constructs a new JMenu with no text. |
|
JMenu(Action a)
Constructs a menu whose properties are taken from the Action supplied. |
|
JMenu(String s)
Constructs a new JMenu with the supplied string
as its text. |
|
JMenu(String s,
boolean b)
Constructs a new JMenu with the supplied string as
its text and specified as a tear-off menu or not. |
|
| Method Summary | |
JMenuItem |
add(Action a)
Creates a new menu item attached to the specified Action object and appends it to the end of this menu. |
Component |
add(Component c)
Appends a component to the end of this menu. |
Component |
add(Component c,
int index)
Adds the specified component to this container at the given position. |
JMenuItem |
add(JMenuItem menuItem)
Appends a menu item to the end of this menu. |
JMenuItem |
add(String s)
Creates a new menu item with the specified text and appends it to the end of this menu. |
void |
addMenuListener(MenuListener l)
Adds a listener for menu events. |
void |
addSeparator()
Appends a new separator to the end of the menu. |
protected PropertyChangeListener |
createActionChangeListener(JMenuItem b)
Returns a properly configured PropertyChangeListener
which updates the control as changes to the Action occur. |
protected JMenuItem |
createActionComponent(Action a)
Factory method which creates the JMenuItem for
Actions added to the JMenu. |
protected JMenu.WinListener |
createWinListener(JPopupMenu p)
Creates a window-closing listener for the popup. |
void |
doClick(int pressTime)
Programatically performs a "click". |
protected void |
fireMenuCanceled()
Notifies all listeners that have registered interest for notification on this event type. |
protected void |
fireMenuDeselected()
Notifies all listeners that have registered interest for notification on this event type. |
protected void |
fireMenuSelected()
Notifies all listeners that have registered interest for notification on this event type. |
AccessibleContext |
getAccessibleContext()
Gets the AccessibleContext associated with this JMenu. |
Component |
getComponent()
Returns the java.awt.Component used to
paint this MenuElement. |
int |
getDelay()
Returns the suggested delay, in milliseconds, before submenus are popped up or down. |
JMenuItem |
getItem(int pos)
Returns the JMenuItem at the specified position. |
int |
getItemCount()
Returns the number of items on the menu, including separators. |
Component |
getMenuComponent(int n)
Returns the component at position n. |
int |
getMenuComponentCount()
Returns the number of components on the menu. |
Component[] |
getMenuComponents()
Returns an array of Components of the menu's
subcomponents. |
JPopupMenu |
getPopupMenu()
Returns the popupmenu associated with this menu. |
protected Point |
getPopupMenuOrigin()
Computes the origin for the JMenu's popup menu. |
MenuElement[] |
getSubElements()
Returns an array of MenuElements containing the submenu
for this menu component. |
String |
getUIClassID()
Returns the name of the L&F class that renders this component. |
JMenuItem |
insert(Action a,
int pos)
Inserts a new menu item attached to the specified Action
object at a given position. |
JMenuItem |
insert(JMenuItem mi,
int pos)
Inserts the specified JMenuitem at a given position. |
void |
insert(String s,
int pos)
Inserts a new menu item with the specified text at a given position. |
void |
insertSeparator(int index)
Inserts a separator at the specified position. |
boolean |
isMenuComponent(Component c)
Returns true if the specified component exists in the submenu hierarchy. |
boolean |
isPopupMenuVisible()
Returns true if the menu's popup window is visible. |
boolean |
isSelected()
Returns true if the menu is currently selected (highlighted). |
boolean |
isTearOff()
Returns true if the menu can be torn off. |
boolean |
isTopLevelMenu()
Returns true if the menu is a 'top-level menu', that is, if it is the direct child of a menubar. |
void |
menuSelectionChanged(boolean isIncluded)
Messaged when the menubar selection changes to activate or deactivate this menu. |
protected String |
paramString()
Returns a string representation of this JMenu. |
protected void |
processKeyEvent(KeyEvent e)
Processes key stroke events for this menu, such as mnemonics and accelerators. |
void |
remove(Component c)
Removes the component c from this menu. |
void |
remove(int pos)
Removes the menu item at the specified index from this menu. |
void |
remove(JMenuItem item)
Removes the specified menu item from this menu. |
void |
removeAll()
Removes all menu items from this menu. |
void |
removeMenuListener(MenuListener l)
Removes a listener for menu events. |
void |
setAccelerator(KeyStroke keyStroke)
setAccelerator is not defined for JMenu. |
void |
setDelay(int d)
Sets the suggested delay before the menu's PopupMenu
is popped up or down. |
void |
setMenuLocation(int x,
int y)
Sets the location of the popup component. |
void |
setModel(ButtonModel newModel)
Sets the data model for the "menu button" -- the label that the user clicks to open or close the menu. |
void |
setPopupMenuVisible(boolean b)
Sets the visibility of the menu's popup. |
void |
setSelected(boolean b)
Sets the selection status of the menu. |
void |
updateUI()
Notification from the UIFactory that the L&F has changed. |
| Methods inherited from class java.awt.Container |
add, add, add, addContainerListener, addImpl, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getLayout, insets, invalidate, isAncestorOf, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, removeContainerListener, setLayout, validate, validateTree |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Methods inherited from interface javax.swing.MenuElement |
processKeyEvent, processMouseEvent |
| Field Detail |
protected JMenu.WinListener popupListener
JMenu.WinListener| Constructor Detail |
public JMenu()
JMenu with no text.public JMenu(String s)
JMenu with the supplied string
as its text.s - the text for the menu labelpublic JMenu(Action a)
Action supplied.a - an Action
public JMenu(String s,
boolean b)
JMenu with the supplied string as
its text and specified as a tear-off menu or not.s - the text for the menu labelb - can the menu be torn off (not yet implemented)| Method Detail |
public void updateUI()
UIFactory that the L&F has changed.
Called to replace the UI with the latest version from the
UIFactory.updateUI in class JMenuItemJComponent.updateUI()public String getUIClassID()
getUIClassID in class JMenuItemJComponent.getUIClassID(),
UIDefaults.getUI(javax.swing.JComponent)public void setModel(ButtonModel newModel)
setModel in class AbstractButtonnewModel - the ButtonModelAbstractButton.getModel()public boolean isSelected()
isSelected in class AbstractButtonpublic void setSelected(boolean b)
setSelected in class AbstractButtonb - true to select (highlight) the menu; false to de-select
the menupublic boolean isPopupMenuVisible()
public void setPopupMenuVisible(boolean b)
b - a boolean value -- true to make the menu visible,
false to hide itprotected Point getPopupMenuOrigin()
JMenu's popup menu.Point in the coordinate space of the
menu which should be used as the origin
of the JMenu's popup menupublic int getDelay()
delay property.
In most cases, the delay is not observed for top level menus
or while dragging. The default for delay is 0.
This method is a property of the look and feel code and is used
to manage the idiosyncracies of the various UI implementations.delay propertypublic void setDelay(int d)
PopupMenu
is popped up or down. Each look and feel (L&F) may determine
it's own policy for observing the delay property. In most cases,
the delay is not observed for top level menus or while dragging.
This method is a property of the look and feel code and is used
to manage the idiosyncracies of the various UI implementations.d - the number of milliseconds to delayIllegalArgumentException - if d
is less than 0
public void setMenuLocation(int x,
int y)
x - the x coordinate of the popup's new positiony - the y coordinate of the popup's new positionpublic JMenuItem add(JMenuItem menuItem)
menuItem - the JMenuitem to be addedJMenuItem addedpublic Component add(Component c)
add in class Containerc - the Component to addComponent added
public Component add(Component c,
int index)
index equals -1, the component will
be appended to the end.add in class Containerc - the Component to addindex - the position at which to insert the componentComponent addedremove(javax.swing.JMenuItem),
Container.add(Component, int)public JMenuItem add(String s)
s - the string for the menu item to be addedpublic JMenuItem add(Action a)
Action object and appends it to the end of this menu.
As of JDK 1.3, this is no longer the preferred method for adding
Actions to
a container. Instead it is recommended to configure a control with
an action using setAction,
and then add that control directly
to the Container.a - the Action for the menu item to be addedActionprotected JMenuItem createActionComponent(Action a)
JMenuItem for
Actions added to the JMenu.
As of JDK 1.3, this is no
longer the preferred method. Instead it is recommended to configure
a control with an action using setAction,
and then adding that
control directly to the Container.a - the Action for the menu item to be addedActionprotected PropertyChangeListener createActionChangeListener(JMenuItem b)
PropertyChangeListener
which updates the control as changes to the Action occur.
As of JDK 1.3, this is no longer the preferred method for adding
Actions to a Container.
Instead it is recommended to configure a control with
an action using setAction, and then add that
control directly
to the Container.public void addSeparator()
public void insert(String s,
int pos)
s - the text for the menu item to addpos - an integer specifying the position at which to add the
new menu itemIllegalArgumentException - when the value of
pos < 0
public JMenuItem insert(JMenuItem mi,
int pos)
JMenuitem at a given position.mi - the JMenuitem to addpos - an integer specifying the position at which to add the
new JMenuitemIllegalArgumentException - if the value of
pos < 0
public JMenuItem insert(Action a,
int pos)
Action
object at a given position.a - the Action object for the menu item to addpos - an integer specifying the position at which to add the
new menu itemIllegalArgumentException - if the value of
pos < 0public void insertSeparator(int index)
index - an integer specifying the position at which to
insert the menu separatorIllegalArgumentException - if the value of
index < 0public JMenuItem getItem(int pos)
JMenuItem at the specified position.
If the component at pos is not a menu item,
null is returned.
This method is included for AWT compatibility.pos - an integer specifying the positionnull
if the item as the specified position is not a menu itemIllegalArgumentException - if the value of
pos < 0public int getItemCount()
getMenuComponentCount()public boolean isTearOff()
Error - if invoked -- this method is not yet implementedpublic void remove(JMenuItem item)
item - the JMenuItem to be removed from the menupublic void remove(int pos)
remove in class Containerpos - the position of the item to be removedIllegalArgumentException - if the value of
pos < 0, or if pos
is greater than the number of menu itemspublic void remove(Component c)
c from this menu.remove in class Containerc - the component to be removedpublic void removeAll()
removeAll in class Containerjava.awt.ContainerContainer.add(java.awt.Component),
Container.remove(int)public int getMenuComponentCount()
public Component getMenuComponent(int n)
n.n - the position of the component to be returnednull
if there is no popup menupublic Component[] getMenuComponents()
Components of the menu's
subcomponents. Note that this returns all Components
in the popup menu, including separators.Components or an empty array
if there is no popup menupublic boolean isTopLevelMenu()
public boolean isMenuComponent(Component c)
c - the Component to be testedComponent exists, false otherwisepublic JPopupMenu getPopupMenu()
public void addMenuListener(MenuListener l)
l - the listener to be addedpublic void removeMenuListener(MenuListener l)
l - the listener to be removedprotected void fireMenuSelected()
Error - if there is a null listenerEventListenerListprotected void fireMenuDeselected()
Error - if there is a null listenerEventListenerListprotected void fireMenuCanceled()
Error - if there is a null listenerEventListenerListprotected JMenu.WinListener createWinListener(JPopupMenu p)
p - the JPopupMenuJMenu.WinListenerpublic void menuSelectionChanged(boolean isIncluded)
JMenuItem.menuSelectionChanged.menuSelectionChanged in interface MenuElementmenuSelectionChanged in class JMenuItemisIncluded - true if this menu is active, false if
it is notpublic MenuElement[] getSubElements()
MenuElements containing the submenu
for this menu component. If popup menu is null returns
an empty array. This method is required to conform to the
MenuElement interface. Note that since
JSeparators do not conform to the MenuElement
interface, this array will only contain JMenuItems.getSubElements in interface MenuElementgetSubElements in class JMenuItemMenuElement objectspublic Component getComponent()
java.awt.Component used to
paint this MenuElement.
The returned component is used to convert events and detect if
an event is inside a menu component.getComponent in interface MenuElementgetComponent in class JMenuItemjavax.swing.MenuElementpublic void setAccelerator(KeyStroke keyStroke)
setAccelerator is not defined for JMenu.
Use setMnemonic instead.setAccelerator in class JMenuItemkeyStroke - the keystroke combination which will invoke
the JMenuItem's actionlisteners
without navigating the menu hierarchyError - if invoked -- this method is not defined for JMenu.
Use setMnemonic insteadprotected void processKeyEvent(KeyEvent e)
processKeyEvent in class JComponente - the key event to be processedpublic void doClick(int pressTime)
AbstractButton.doClick in order to make the menu pop up.doClick in class AbstractButtonpressTime - indicates the number of milliseconds the
button was pressed forprotected String paramString()
JMenu. This
method is intended to be used only for debugging purposes, and the
content and format of the returned string may vary between
implementations. The returned string may be empty but may not
be null.paramString in class JMenuItempublic AccessibleContext getAccessibleContext()
getAccessibleContext in interface AccessiblegetAccessibleContext in class JMenuItem
|
JavaTM 2 Platform Std. Ed. v1.3 |
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
Java, Java 2D, and JDBC are trademarks or registered trademarks of Sun Microsystems, Inc. in the US and other countries.
Copyright 1993-2000 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.