|
JavaTM 2 Platform Std. Ed. v1.3.1 |
|||||||||
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
JMenuItem
s that
is displayed when the user selects an item on the JMenuBar
.
In addition to JMenuItem
s, a JMenu
can
also contain JSeparator
s.
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 FormInner 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
Action s 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 Component s 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 MenuElement s 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 |
processFocusEvent(FocusEvent e)
Processes any focus events, such as FocusEvent.FOCUS_GAINED or
FocusEvent.FOCUS_LOST . |
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 JMenuItem
JComponent.updateUI()
public String getUIClassID()
getUIClassID
in class JMenuItem
JComponent.getUIClassID()
,
UIDefaults.getUI(javax.swing.JComponent)
public void setModel(ButtonModel newModel)
setModel
in class AbstractButton
newModel
- the ButtonModel
AbstractButton.getModel()
public boolean isSelected()
isSelected
in class AbstractButton
public void setSelected(boolean b)
setSelected
in class AbstractButton
b
- 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 0public 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 Container
c
- the Component
to addComponent
addedpublic Component add(Component c, int index)
index
equals -1, the component will
be appended to the end.add
in class Container
c
- 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 addedAction
protected JMenuItem createActionComponent(Action a)
JMenuItem
for
Action
s 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 addedAction
protected 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
Action
s 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
< 0public 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 JMenuitem
IllegalArgumentException
- if the value of
pos
< 0public 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 Container
pos
- 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 Container
c
- the component to be removedpublic void removeAll()
removeAll
in class Container
java.awt.Container
Container.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()
Component
s of the menu's
subcomponents. Note that this returns all Component
s
in the popup menu, including separators.Component
s 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
listenerEventListenerList
protected void fireMenuDeselected()
Error
- if there is a null
listenerEventListenerList
protected void fireMenuCanceled()
Error
- if there is a null
listenerEventListenerList
protected JMenu.WinListener createWinListener(JPopupMenu p)
p
- the JPopupMenu
JMenu.WinListener
public void menuSelectionChanged(boolean isIncluded)
JMenuItem.menuSelectionChanged
.menuSelectionChanged
in interface MenuElement
menuSelectionChanged
in class JMenuItem
isIncluded
- true if this menu is active, false if
it is notpublic MenuElement[] getSubElements()
MenuElement
s 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
JSeparator
s do not conform to the MenuElement
interface, this array will only contain JMenuItem
s.getSubElements
in interface MenuElement
getSubElements
in class JMenuItem
MenuElement
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 MenuElement
getComponent
in class JMenuItem
javax.swing.MenuElement
public void setAccelerator(KeyStroke keyStroke)
setAccelerator
is not defined for JMenu
.
Use setMnemonic
instead.setAccelerator
in class JMenuItem
keyStroke
- 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 processFocusEvent(FocusEvent e)
FocusEvent.FOCUS_GAINED
or
FocusEvent.FOCUS_LOST
.processFocusEvent
in class JComponent
e
- the FocusEvent
FocusEvent
protected void processKeyEvent(KeyEvent e)
processKeyEvent
in class JComponent
e
- the key event to be processedpublic void doClick(int pressTime)
AbstractButton.doClick
in order to make the menu pop up.doClick
in class AbstractButton
pressTime
- 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 JMenuItem
public AccessibleContext getAccessibleContext()
getAccessibleContext
in interface Accessible
getAccessibleContext
in class JMenuItem
|
JavaTM 2 Platform Std. Ed. v1.3.1 |
|||||||||
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-2001 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.