|
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.JPopupMenu
An implementation of a popup menu -- a small window that pops up
and displays a series of choices. A JPopupMenu
is used for the
menu that appears when the user selects an item on the menu bar.
It is also used for "pull-right" menu that appears when the
selects a menu item that activates it. Finally, a JPopupMenu
can also be used anywhere else you want a menu to appear. For
example, when the user right-clicks in a specified area.
For information and examples of using popup menus, see How to Use Menus in The Java Tutorial. For the keyboard keys used by this component in the standard Look and Feel (L&F) renditions, see the JPopupMenu 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.
Inner Class Summary | |
protected class |
JPopupMenu.AccessibleJPopupMenu
This class implements accessibility support for the JPopupMenu class. |
static class |
JPopupMenu.Separator
A popup menu-specific separator. |
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 |
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 java.awt.image.ImageObserver |
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH |
Constructor Summary | |
JPopupMenu()
Constructs a JPopupMenu without an "invoker". |
|
JPopupMenu(String label)
Constructs a JPopupMenu with the specified title. |
Method Summary | |
JMenuItem |
add(Action a)
Appends a new menu item to the end of the menu which dispatches the specified Action object. |
JMenuItem |
add(JMenuItem menuItem)
Appends the specified 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 |
addPopupMenuListener(PopupMenuListener l)
Adds a PopupMenu listener. |
void |
addSeparator()
Appends a new separator at 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 JPopupMenu . |
protected void |
firePopupMenuCanceled()
Notifies PopupMenuListeners that this popup menu is
cancelled. |
protected void |
firePopupMenuWillBecomeInvisible()
Notifies PopupMenuListener s that this popup menu will
become invisible. |
protected void |
firePopupMenuWillBecomeVisible()
Notifies PopupMenuListener s that this popup menu will
become visible. |
AccessibleContext |
getAccessibleContext()
Gets the AccessibleContext associated with this JPopupMenu. |
Component |
getComponent()
Returns this JPopupMenu component. |
Component |
getComponentAtIndex(int i)
Deprecated. replaced by getComponent(int i) |
int |
getComponentIndex(Component c)
Returns the index of the specified component. |
static boolean |
getDefaultLightWeightPopupEnabled()
Returns true if this is a light weight popup component, false otherwise. |
Component |
getInvoker()
Returns the component which is the 'invoker' of this popup menu. |
String |
getLabel()
Returns the popup menu's label |
Insets |
getMargin()
Returns the margin, in pixels, between the popup menu's border and its containees. |
SingleSelectionModel |
getSelectionModel()
Returns the model object that handles single selections. |
MenuElement[] |
getSubElements()
Returns an array of MenuElement s containing the submenu
for this menu component. |
PopupMenuUI |
getUI()
Returns the look and feel (L&F) object that renders this component. |
String |
getUIClassID()
Returns the name of the L&F class that renders this component. |
void |
insert(Action a,
int index)
Inserts a menu item for the specified Action object at
a given position. |
void |
insert(Component component,
int index)
Inserts the specified component into the menu at a given position. |
boolean |
isBorderPainted()
Checks whether the border should be painted. |
boolean |
isLightWeightPopupEnabled()
Returns true if light weight (all-Java) popups are in use, or false if heavy weight (native peer) popups are being used. |
boolean |
isPopupTrigger(MouseEvent e)
Returns true if the MouseEvent is considered a popup trigger
by the JPopupMenu 's currently installed UI. |
boolean |
isVisible()
Returns true if the popup menu is visible (currently being displayed). |
void |
menuSelectionChanged(boolean isIncluded)
Messaged when the menubar selection changes to activate or deactivate this menu. |
void |
pack()
Lays out the container so that it uses the minimum space needed to display its contents. |
protected void |
paintBorder(Graphics g)
Paints the popup menu's border if BorderPainted
property is true. |
protected String |
paramString()
Returns a string representation of this JPopupMenu . |
void |
processKeyEvent(KeyEvent e,
MenuElement[] path,
MenuSelectionManager manager)
This method is required to conform to the MenuElement interface, but it not implemented. |
void |
processMouseEvent(MouseEvent event,
MenuElement[] path,
MenuSelectionManager manager)
This method is required to conform to the MenuElement interface, but it not implemented. |
void |
remove(int pos)
Removes the component at the specified index from this popup menu. |
void |
removePopupMenuListener(PopupMenuListener l)
Removes a PopupMenu listener. |
void |
setBorderPainted(boolean b)
Sets whether the border should be painted. |
static void |
setDefaultLightWeightPopupEnabled(boolean aFlag)
Sets the default value for the lightWeightPopupEnabled
property. |
void |
setInvoker(Component invoker)
Sets the invoker of this popup menu -- the component in which the popup menu menu is to be displayed. |
void |
setLabel(String label)
Sets the popup menu's label. |
void |
setLightWeightPopupEnabled(boolean aFlag)
When displaying the popup, JPopupMenu chooses to
use a light weight popup if it fits. |
void |
setLocation(int x,
int y)
Sets the location of the upper left corner of the popup menu using x, y coordinates. |
void |
setPopupSize(Dimension d)
Sets the size of the Popup window using a Dimension object. |
void |
setPopupSize(int width,
int height)
Sets the size of the Popup window to the specified width and height. |
void |
setSelected(Component sel)
Sets the currently selected component, This will result in a change to the selection model. |
void |
setSelectionModel(SingleSelectionModel model)
Sets the model object to handle single selections. |
void |
setUI(PopupMenuUI ui)
Sets the L&F object that renders this component. |
void |
setVisible(boolean b)
Sets the visibility of the popup menu. |
void |
show(Component invoker,
int x,
int y)
Displays the popup menu at the position x,y in the coordinate space of the component invoker. |
void |
updateUI()
Notification from the UIFactory that the L&F has changed. |
Methods inherited from class java.awt.Container |
add, add, 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, remove, removeAll, removeContainerListener, setLayout, validate, validateTree |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Constructor Detail |
public JPopupMenu()
JPopupMenu
without an "invoker".public JPopupMenu(String label)
JPopupMenu
with the specified title.label
- the string that a UI may use to display as a title
for the popup menu.Method Detail |
public static void setDefaultLightWeightPopupEnabled(boolean aFlag)
lightWeightPopupEnabled
property.
Lightweight popup windows are more efficient than heavy weight windows,
but light weight and heavy weight components do not mix well in a GUI,
and in that situation a heavy weight may be required.aFlag
- true if the popup is to be light weight, otherwise falsegetDefaultLightWeightPopupEnabled()
public static boolean getDefaultLightWeightPopupEnabled()
lightWeightPopupEnabled
propertysetDefaultLightWeightPopupEnabled(boolean)
public PopupMenuUI getUI()
PopupMenuUI
object that renders this componentpublic void setUI(PopupMenuUI ui)
ui
- the new PopupMenuUI
L&F objectUIDefaults.getUI(javax.swing.JComponent)
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 JComponent
JComponent.updateUI()
public String getUIClassID()
getUIClassID
in class JComponent
JComponent.getUIClassID()
,
UIDefaults.getUI(javax.swing.JComponent)
public SingleSelectionModel getSelectionModel()
selectionModel
propertySingleSelectionModel
public void setSelectionModel(SingleSelectionModel model)
model
- the new SingleSelectionModel
SingleSelectionModel
public JMenuItem add(JMenuItem menuItem)
c
- the JMenuItem
to addJMenuItem
addedpublic JMenuItem add(String s)
s
- the string for the menu item to be addedpublic JMenuItem add(Action a)
Action
object.
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
to add to the menuAction
protected JMenuItem createActionComponent(Action a)
JMenuItem
for
Actions
added to the JPopupMenu
.
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
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 remove(int pos)
remove
in class Container
pos
- the position of the item to be removedIllegalArgumentException
- if the value of
pos
< 0, or if the value of
pos
is greater than the
number of itemspublic void setLightWeightPopupEnabled(boolean aFlag)
JPopupMenu
chooses to
use a light weight popup if it fits.
This method allows you to disable this feature.
You have to do disable
it if your application mixes light weight and heavy weights components.aFlag
- true if the popup is to be light weight, otherwise falsepublic boolean isLightWeightPopupEnabled()
public String getLabel()
setLabel(java.lang.String)
public void setLabel(String label)
label
- a string specifying the label for the popup menusetLabel(java.lang.String)
public void addSeparator()
public void insert(Action a, int index)
Action
object at
a given position.a
- the Action
object to insertindex
- specifies the position at which to insert the
Action
, where 0 is the firstAction
public void insert(Component component, int index)
component
- the Component
to insertindex
- specifies the position at which
to insert the component, where 0 is the firstIllegalArgumentException
- if index
< 0public void addPopupMenuListener(PopupMenuListener l)
PopupMenu
listener.l
- the PopupMenuListener
to addpublic void removePopupMenuListener(PopupMenuListener l)
PopupMenu
listener.l
- the PopupMenuListener
to removeprotected void firePopupMenuWillBecomeVisible()
PopupMenuListener
s that this popup menu will
become visible.protected void firePopupMenuWillBecomeInvisible()
PopupMenuListener
s that this popup menu will
become invisible.protected void firePopupMenuCanceled()
PopupMenuListeners
that this popup menu is
cancelled.public void pack()
public void setVisible(boolean b)
setVisible
in class JComponent
b
- true to make the popup visible, or false to
hide itpublic boolean isVisible()
isVisible
in class Component
java.awt.Component
true
if the component is visible;
false
otherwise.Component.setVisible(boolean)
public void setLocation(int x, int y)
setLocation
in class Component
x
- the x coordinate of the popup's new positiony
- the y coordinate of the popup's new positionpublic Component getInvoker()
Component
in which the popup menu is displayedpublic void setInvoker(Component invoker)
invoker
- the Component
in which the popup
menu is displayedpublic void show(Component invoker, int x, int y)
invoker
- the component in whose space the popup menu is to appearx
- the x coordinate in invoker's coordinate space at which
the popup menu is to be displayedy
- the y coordinate in invoker's coordinate space at which
the popup menu is to be displayedpublic Component getComponentAtIndex(int i)
getComponent(int i)
i
- the index of the component, where 0 is the firstComponent
at that indexpublic int getComponentIndex(Component c)
the
- Component
to findpublic void setPopupSize(Dimension d)
Dimension
object.d
- the Dimension
specifying the new size
of this component.public void setPopupSize(int width, int height)
width
- the new width of the Popup in pixelsheight
- the new height of the Popup in pixelspublic void setSelected(Component sel)
sel
- the Component
to selectpublic boolean isBorderPainted()
setBorderPainted(boolean)
public void setBorderPainted(boolean b)
b
- if true, the border is painted.isBorderPainted()
protected void paintBorder(Graphics g)
BorderPainted
property is true.paintBorder
in class JComponent
g
- the Graphics
objectJComponent.paint(java.awt.Graphics)
,
JComponent.setBorder(javax.swing.border.Border)
public Insets getMargin()
Insets
object containing the margin values.protected String paramString()
JPopupMenu
.
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 JComponent
JPopupMenu
.public AccessibleContext getAccessibleContext()
getAccessibleContext
in interface Accessible
getAccessibleContext
in class JComponent
public void processMouseEvent(MouseEvent event, MenuElement[] path, MenuSelectionManager manager)
MenuElement
interface, but it not implemented.processMouseEvent
in interface MenuElement
MenuElement.processMouseEvent(MouseEvent, MenuElement[], MenuSelectionManager)
public void processKeyEvent(KeyEvent e, MenuElement[] path, MenuSelectionManager manager)
MenuElement
interface, but it not implemented.processKeyEvent
in interface MenuElement
MenuElement.processKeyEvent(KeyEvent, MenuElement[], MenuSelectionManager)
public void menuSelectionChanged(boolean isIncluded)
javax.swing.MenuElement
interface.
Overrides MenuElement.menuSelectionChanged
.menuSelectionChanged
in interface MenuElement
isIncluded
- true if this menu is active, false if
it is notMenuElement.menuSelectionChanged(boolean)
public MenuElement[] getSubElements()
MenuElement
s containing the submenu
for this menu component. It will only return items conforming to
the JMenuElement
interface.
If popup menu is null
returns
an empty array. This method is required to conform to the
MenuElement
interface.getSubElements
in interface MenuElement
MenuElement
objectsMenuElement.getSubElements()
public Component getComponent()
JPopupMenu
component.getComponent
in interface MenuElement
JPopupMenu
objectMenuElement.getComponent()
public boolean isPopupTrigger(MouseEvent e)
MouseEvent
is considered a popup trigger
by the JPopupMenu
's currently installed UI.
|
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.