- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- javax.swing.JPopupMenu
-
- All Implemented Interfaces:
ImageObserver
,MenuContainer
,Serializable
,Accessible
,MenuElement
- Direct Known Subclasses:
BasicComboPopup
@JavaBean(defaultProperty="UI", description="A small window that pops up and displays a series of choices.") public class JPopupMenu extends JComponent implements Accessible, MenuElement
An implementation of a popup menu -- a small window that pops up and displays a series of choices. AJPopupMenu
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, aJPopupMenu
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.
Warning: Swing is not thread safe. For more information see Swing's Threading Policy.
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. As of 1.4, support for long term storage of all JavaBeans™ has been added to the
java.beans
package. Please seeXMLEncoder
.- Since:
- 1.2
- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected class
JPopupMenu.AccessibleJPopupMenu
This class implements accessibility support for theJPopupMenu
class.static class
JPopupMenu.Separator
A popup menu-specific separator.-
Nested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
-
Nested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainer
-
Nested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent
-
-
Field Summary
-
Fields inherited from class java.awt.Component
accessibleContext, 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
-
Fields inherited from class javax.swing.JComponent
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
-
-
Constructor Summary
Constructors Constructor Description JPopupMenu()
Constructs aJPopupMenu
without an "invoker".JPopupMenu(String label)
Constructs aJPopupMenu
with the specified title.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description JMenuItem
add(String s)
Creates a new menu item with the specified text and appends it to the end of this menu.JMenuItem
add(Action a)
Appends a new menu item to the end of the menu which dispatches the specifiedAction
object.JMenuItem
add(JMenuItem menuItem)
Appends the specified menu item to the end of this menu.void
addMenuKeyListener(MenuKeyListener l)
Adds aMenuKeyListener
to the popup menu.void
addPopupMenuListener(PopupMenuListener l)
Adds aPopupMenu
listener.void
addSeparator()
Appends a new separator at the end of the menu.protected PropertyChangeListener
createActionChangeListener(JMenuItem b)
Returns a properly configuredPropertyChangeListener
which updates the control as changes to theAction
occur.protected JMenuItem
createActionComponent(Action a)
Factory method which creates theJMenuItem
forActions
added to theJPopupMenu
.protected void
firePopupMenuCanceled()
NotifiesPopupMenuListeners
that this popup menu is cancelled.protected void
firePopupMenuWillBecomeInvisible()
NotifiesPopupMenuListener
s that this popup menu will become invisible.protected void
firePopupMenuWillBecomeVisible()
NotifiesPopupMenuListener
s that this popup menu will become visible.AccessibleContext
getAccessibleContext()
Gets the AccessibleContext associated with this JPopupMenu.Component
getComponent()
Returns thisJPopupMenu
component.Component
getComponentAtIndex(int i)
Deprecated.replaced byContainer.getComponent(int)
int
getComponentIndex(Component c)
Returns the index of the specified component.static boolean
getDefaultLightWeightPopupEnabled()
Gets thedefaultLightWeightPopupEnabled
property, which by default istrue
.Component
getInvoker()
Returns the component which is the 'invoker' of this popup menu.String
getLabel()
Returns the popup menu's labelInsets
getMargin()
Returns the margin, in pixels, between the popup menu's border and its containers.MenuKeyListener[]
getMenuKeyListeners()
Returns an array of all theMenuKeyListener
s added to this JPopupMenu with addMenuKeyListener().PopupMenuListener[]
getPopupMenuListeners()
Returns an array of all thePopupMenuListener
s added to this JMenuItem with addPopupMenuListener().SingleSelectionModel
getSelectionModel()
Returns the model object that handles single selections.MenuElement[]
getSubElements()
Returns an array ofMenuElement
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(Component component, int index)
Inserts the specified component into the menu at a given position.void
insert(Action a, int index)
Inserts a menu item for the specifiedAction
object at a given position.boolean
isBorderPainted()
Checks whether the border should be painted.boolean
isLightWeightPopupEnabled()
Gets thelightWeightPopupEnabled
property.boolean
isPopupTrigger(MouseEvent e)
Returns true if theMouseEvent
is considered a popup trigger by theJPopupMenu
'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 theborderPainted
property istrue
.protected String
paramString()
Returns a string representation of thisJPopupMenu
.protected void
processFocusEvent(FocusEvent evt)
Processes focus events occurring on this component by dispatching them to any registeredFocusListener
objects.protected void
processKeyEvent(KeyEvent evt)
Processes key stroke events such as mnemonics and accelerators.void
processKeyEvent(KeyEvent e, MenuElement[] path, MenuSelectionManager manager)
Processes a key event forwarded from theMenuSelectionManager
and changes the menu selection, if necessary, by usingMenuSelectionManager
's API.void
processMouseEvent(MouseEvent event, MenuElement[] path, MenuSelectionManager manager)
This method is required to conform to theMenuElement
interface, but it not implemented.void
remove(int pos)
Removes the component at the specified index from this popup menu.void
removeMenuKeyListener(MenuKeyListener l)
Removes aMenuKeyListener
from the popup menu.void
removePopupMenuListener(PopupMenuListener l)
Removes aPopupMenu
listener.void
setBorderPainted(boolean b)
Sets whether the border should be painted.static void
setDefaultLightWeightPopupEnabled(boolean aFlag)
Sets the default value of thelightWeightPopupEnabled
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)
Sets the value of thelightWeightPopupEnabled
property, which by default istrue
.void
setLocation(int x, int y)
Sets the location of the upper left corner of the popup menu using x, y coordinates.void
setPopupSize(int width, int height)
Sets the size of the Popup window to the specified width and height.void
setPopupSize(Dimension d)
Sets the size of the Popup window using aDimension
object.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()
Resets the UI property to a value from the current look and feel.-
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
-
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, validate, validateTree
-
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, unregisterKeyboardAction, update
-
-
-
-
Constructor Detail
-
JPopupMenu
public JPopupMenu()
Constructs aJPopupMenu
without an "invoker".
-
JPopupMenu
public JPopupMenu(String label)
Constructs aJPopupMenu
with the specified title.- Parameters:
label
- the string that a UI may use to display as a title for the popup menu.
-
-
Method Detail
-
setDefaultLightWeightPopupEnabled
public static void setDefaultLightWeightPopupEnabled(boolean aFlag)
Sets the default value of thelightWeightPopupEnabled
property.- Parameters:
aFlag
-true
if popups can be lightweight, otherwisefalse
- See Also:
getDefaultLightWeightPopupEnabled()
,setLightWeightPopupEnabled(boolean)
-
getDefaultLightWeightPopupEnabled
public static boolean getDefaultLightWeightPopupEnabled()
Gets thedefaultLightWeightPopupEnabled
property, which by default istrue
.- Returns:
- the value of the
defaultLightWeightPopupEnabled
property - See Also:
setDefaultLightWeightPopupEnabled(boolean)
-
getUI
public PopupMenuUI getUI()
Returns the look and feel (L&F) object that renders this component.- Overrides:
getUI
in classJComponent
- Returns:
- the
PopupMenuUI
object that renders this component
-
setUI
@BeanProperty(hidden=true, visualUpdate=true, description="The UI object that implements the Component\'s LookAndFeel.") public void setUI(PopupMenuUI ui)
Sets the L&F object that renders this component.- Parameters:
ui
- the newPopupMenuUI
L&F object- See Also:
UIDefaults.getUI(javax.swing.JComponent)
-
updateUI
public void updateUI()
Resets the UI property to a value from the current look and feel.- Overrides:
updateUI
in classJComponent
- See Also:
JComponent.updateUI()
-
getUIClassID
@BeanProperty(bound=false) public String getUIClassID()
Returns the name of the L&F class that renders this component.- Overrides:
getUIClassID
in classJComponent
- Returns:
- the string "PopupMenuUI"
- See Also:
JComponent.getUIClassID()
,UIDefaults.getUI(javax.swing.JComponent)
-
processFocusEvent
protected void processFocusEvent(FocusEvent evt)
Description copied from class:Component
Processes focus events occurring on this component by dispatching them to any registeredFocusListener
objects.This method is not called unless focus events are enabled for this component. Focus events are enabled when one of the following occurs:
- A
FocusListener
object is registered viaaddFocusListener
. - Focus events are enabled via
enableEvents
.
If focus events are enabled for a
Component
, the currentKeyboardFocusManager
determines whether or not a focus event should be dispatched to registeredFocusListener
objects. If the events are to be dispatched, theKeyboardFocusManager
calls theComponent
'sdispatchEvent
method, which results in a call to theComponent
'sprocessFocusEvent
method.If focus events are enabled for a
Component
, calling theComponent
'sdispatchEvent
method with aFocusEvent
as the argument will result in a call to theComponent
'sprocessFocusEvent
method regardless of the currentKeyboardFocusManager
.Note that if the event parameter is
null
the behavior is unspecified and may result in an exception.- Overrides:
processFocusEvent
in classComponent
- Parameters:
evt
- the focus event- See Also:
FocusEvent
,FocusListener
,KeyboardFocusManager
,Component.addFocusListener(java.awt.event.FocusListener)
,Component.enableEvents(long)
,Component.dispatchEvent(java.awt.AWTEvent)
- A
-
processKeyEvent
protected void processKeyEvent(KeyEvent evt)
Processes key stroke events such as mnemonics and accelerators.- Overrides:
processKeyEvent
in classJComponent
- Parameters:
evt
- the key event to be processed- See Also:
KeyEvent
,KeyListener
,KeyboardFocusManager
,DefaultKeyboardFocusManager
,Component.processEvent(java.awt.AWTEvent)
,Component.dispatchEvent(java.awt.AWTEvent)
,Component.addKeyListener(java.awt.event.KeyListener)
,Component.enableEvents(long)
,Component.isShowing()
-
getSelectionModel
public SingleSelectionModel getSelectionModel()
Returns the model object that handles single selections.- Returns:
- the
selectionModel
property - See Also:
SingleSelectionModel
-
setSelectionModel
@BeanProperty(bound=false, expert=true, description="The selection model for the popup menu") public void setSelectionModel(SingleSelectionModel model)
Sets the model object to handle single selections.- Parameters:
model
- the newSingleSelectionModel
- See Also:
SingleSelectionModel
-
add
public JMenuItem add(JMenuItem menuItem)
Appends the specified menu item to the end of this menu.- Parameters:
menuItem
- theJMenuItem
to add- Returns:
- the
JMenuItem
added
-
add
public JMenuItem add(String s)
Creates a new menu item with the specified text and appends it to the end of this menu.- Parameters:
s
- the string for the menu item to be added- Returns:
- a new
JMenuItem
created usings
-
add
public JMenuItem add(Action a)
Appends a new menu item to the end of the menu which dispatches the specifiedAction
object.- Parameters:
a
- theAction
to add to the menu- Returns:
- the new menu item
- See Also:
Action
-
createActionComponent
protected JMenuItem createActionComponent(Action a)
Factory method which creates theJMenuItem
forActions
added to theJPopupMenu
.- Parameters:
a
- theAction
for the menu item to be added- Returns:
- the new menu item
- Since:
- 1.3
- See Also:
Action
-
createActionChangeListener
protected PropertyChangeListener createActionChangeListener(JMenuItem b)
Returns a properly configuredPropertyChangeListener
which updates the control as changes to theAction
occur.- Parameters:
b
- the menu item for which to create a listener- Returns:
- a properly configured
PropertyChangeListener
-
remove
public void remove(int pos)
Removes the component at the specified index from this popup menu.- Overrides:
remove
in classContainer
- Parameters:
pos
- the position of the item to be removed- Throws:
IllegalArgumentException
- if the value ofpos
< 0, or if the value ofpos
is greater than the number of items- See Also:
Container.add(java.awt.Component)
,Container.invalidate()
,Container.validate()
,Container.getComponentCount()
-
setLightWeightPopupEnabled
@BeanProperty(bound=false, expert=true, description="Determines whether lightweight popups are used when possible") public void setLightWeightPopupEnabled(boolean aFlag)
Sets the value of thelightWeightPopupEnabled
property, which by default istrue
. By default, when a look and feel displays a popup, it can choose to use a lightweight (all-Java) popup. Lightweight popup windows are more efficient than heavyweight (native peer) windows, but lightweight and heavyweight components do not mix well in a GUI. If your application mixes lightweight and heavyweight components, you should disable lightweight popups. Some look and feels might always use heavyweight popups, no matter what the value of this property.- Parameters:
aFlag
-false
to disable lightweight popups- See Also:
isLightWeightPopupEnabled()
-
isLightWeightPopupEnabled
public boolean isLightWeightPopupEnabled()
Gets thelightWeightPopupEnabled
property.- Returns:
- the value of the
lightWeightPopupEnabled
property - See Also:
setLightWeightPopupEnabled(boolean)
-
getLabel
public String getLabel()
Returns the popup menu's label- Returns:
- a string containing the popup menu's label
- See Also:
setLabel(java.lang.String)
-
setLabel
@BeanProperty(description="The label for the popup menu.") public void setLabel(String label)
Sets the popup menu's label. Different look and feels may choose to display or not display this.- Parameters:
label
- a string specifying the label for the popup menu- See Also:
setLabel(java.lang.String)
-
addSeparator
public void addSeparator()
Appends a new separator at the end of the menu.
-
insert
public void insert(Action a, int index)
Inserts a menu item for the specifiedAction
object at a given position.- Parameters:
a
- theAction
object to insertindex
- specifies the position at which to insert theAction
, where 0 is the first- Throws:
IllegalArgumentException
- ifindex
< 0- See Also:
Action
-
insert
public void insert(Component component, int index)
Inserts the specified component into the menu at a given position.- Parameters:
component
- theComponent
to insertindex
- specifies the position at which to insert the component, where 0 is the first- Throws:
IllegalArgumentException
- ifindex
< 0
-
addPopupMenuListener
public void addPopupMenuListener(PopupMenuListener l)
Adds aPopupMenu
listener.- Parameters:
l
- thePopupMenuListener
to add
-
removePopupMenuListener
public void removePopupMenuListener(PopupMenuListener l)
Removes aPopupMenu
listener.- Parameters:
l
- thePopupMenuListener
to remove
-
getPopupMenuListeners
@BeanProperty(bound=false) public PopupMenuListener[] getPopupMenuListeners()
Returns an array of all thePopupMenuListener
s added to this JMenuItem with addPopupMenuListener().- Returns:
- all of the
PopupMenuListener
s added or an empty array if no listeners have been added - Since:
- 1.4
-
addMenuKeyListener
public void addMenuKeyListener(MenuKeyListener l)
Adds aMenuKeyListener
to the popup menu.- Parameters:
l
- theMenuKeyListener
to be added- Since:
- 1.5
-
removeMenuKeyListener
public void removeMenuKeyListener(MenuKeyListener l)
Removes aMenuKeyListener
from the popup menu.- Parameters:
l
- theMenuKeyListener
to be removed- Since:
- 1.5
-
getMenuKeyListeners
@BeanProperty(bound=false) public MenuKeyListener[] getMenuKeyListeners()
Returns an array of all theMenuKeyListener
s added to this JPopupMenu with addMenuKeyListener().- Returns:
- all of the
MenuKeyListener
s added or an empty array if no listeners have been added - Since:
- 1.5
-
firePopupMenuWillBecomeVisible
protected void firePopupMenuWillBecomeVisible()
NotifiesPopupMenuListener
s that this popup menu will become visible.
-
firePopupMenuWillBecomeInvisible
protected void firePopupMenuWillBecomeInvisible()
NotifiesPopupMenuListener
s that this popup menu will become invisible.
-
firePopupMenuCanceled
protected void firePopupMenuCanceled()
NotifiesPopupMenuListeners
that this popup menu is cancelled.
-
pack
public void pack()
Lays out the container so that it uses the minimum space needed to display its contents.
-
setVisible
@BeanProperty(description="Makes the popup visible") public void setVisible(boolean b)
Sets the visibility of the popup menu.- Overrides:
setVisible
in classJComponent
- Parameters:
b
- true to make the popup visible, or false to hide it- See Also:
Component.isVisible()
,Component.invalidate()
-
isVisible
public boolean isVisible()
Returns true if the popup menu is visible (currently being displayed).- Overrides:
isVisible
in classComponent
- Returns:
true
if the component is visible,false
otherwise- See Also:
Component.setVisible(boolean)
-
setLocation
@BeanProperty(description="The location of the popup menu.") public void setLocation(int x, int y)
Sets the location of the upper left corner of the popup menu using x, y coordinates.The method changes the geometry-related data. Therefore, the native windowing system may ignore such requests, or it may modify the requested data, so that the
JPopupMenu
object is placed and sized in a way that corresponds closely to the desktop settings.- Overrides:
setLocation
in classComponent
- Parameters:
x
- the x coordinate of the popup's new position in the screen's coordinate spacey
- the y coordinate of the popup's new position in the screen's coordinate space- See Also:
Component.getLocation()
,Component.setBounds(int, int, int, int)
,Component.invalidate()
-
getInvoker
public Component getInvoker()
Returns the component which is the 'invoker' of this popup menu.- Returns:
- the
Component
in which the popup menu is displayed
-
setInvoker
@BeanProperty(bound=false, expert=true, description="The invoking component for the popup menu") public void setInvoker(Component invoker)
Sets the invoker of this popup menu -- the component in which the popup menu menu is to be displayed.- Parameters:
invoker
- theComponent
in which the popup menu is displayed
-
show
public 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.- Parameters:
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 displayed
-
getComponentAtIndex
@Deprecated public Component getComponentAtIndex(int i)
Deprecated. replaced byContainer.getComponent(int)
Returns the component at the specified index.- Parameters:
i
- the index of the component, where 0 is the first- Returns:
- the
Component
at that index
-
getComponentIndex
public int getComponentIndex(Component c)
Returns the index of the specified component.- Parameters:
c
- theComponent
to find- Returns:
- the index of the component, where 0 is the first; or -1 if the component is not found
-
setPopupSize
@BeanProperty(description="The size of the popup menu") public void setPopupSize(Dimension d)
Sets the size of the Popup window using aDimension
object. This is equivalent tosetPreferredSize(d)
.- Parameters:
d
- theDimension
specifying the new size of this component.
-
setPopupSize
@BeanProperty(description="The size of the popup menu") public void setPopupSize(int width, int height)
Sets the size of the Popup window to the specified width and height. This is equivalent tosetPreferredSize(new Dimension(width, height))
.- Parameters:
width
- the new width of the Popup in pixelsheight
- the new height of the Popup in pixels
-
setSelected
@BeanProperty(expert=true, hidden=true, description="The selected component on the popup menu") public void setSelected(Component sel)
Sets the currently selected component, This will result in a change to the selection model.- Parameters:
sel
- theComponent
to select
-
isBorderPainted
public boolean isBorderPainted()
Checks whether the border should be painted.- Returns:
- true if the border is painted, false otherwise
- See Also:
setBorderPainted(boolean)
-
setBorderPainted
@BeanProperty(bound=false, description="Is the border of the popup menu painted") public void setBorderPainted(boolean b)
Sets whether the border should be painted.- Parameters:
b
- if true, the border is painted.- See Also:
isBorderPainted()
-
paintBorder
protected void paintBorder(Graphics g)
Paints the popup menu's border if theborderPainted
property istrue
.- Overrides:
paintBorder
in classJComponent
- Parameters:
g
- theGraphics
object- See Also:
JComponent.paint(java.awt.Graphics)
,JComponent.setBorder(javax.swing.border.Border)
-
getMargin
@BeanProperty(bound=false) public Insets getMargin()
Returns the margin, in pixels, between the popup menu's border and its containers.- Returns:
- an
Insets
object containing the margin values.
-
paramString
protected String paramString()
Returns a string representation of thisJPopupMenu
. 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 benull
.- Overrides:
paramString
in classJComponent
- Returns:
- a string representation of this
JPopupMenu
.
-
getAccessibleContext
@BeanProperty(bound=false) public AccessibleContext getAccessibleContext()
Gets the AccessibleContext associated with this JPopupMenu. For JPopupMenus, the AccessibleContext takes the form of an AccessibleJPopupMenu. A new AccessibleJPopupMenu instance is created if necessary.- Specified by:
getAccessibleContext
in interfaceAccessible
- Overrides:
getAccessibleContext
in classComponent
- Returns:
- an AccessibleJPopupMenu that serves as the AccessibleContext of this JPopupMenu
-
processMouseEvent
public void processMouseEvent(MouseEvent event, MenuElement[] path, MenuSelectionManager manager)
This method is required to conform to theMenuElement
interface, but it not implemented.- Specified by:
processMouseEvent
in interfaceMenuElement
- Parameters:
event
- aMouseEvent
to be processedpath
- the path of the receiving element in the menu hierarchymanager
- theMenuSelectionManager
for the menu hierarchy- See Also:
MenuElement.processMouseEvent(MouseEvent, MenuElement[], MenuSelectionManager)
-
processKeyEvent
public void processKeyEvent(KeyEvent e, MenuElement[] path, MenuSelectionManager manager)
Processes a key event forwarded from theMenuSelectionManager
and changes the menu selection, if necessary, by usingMenuSelectionManager
's API.Note: you do not have to forward the event to sub-components. This is done automatically by the
MenuSelectionManager
.- Specified by:
processKeyEvent
in interfaceMenuElement
- Parameters:
e
- aKeyEvent
path
- theMenuElement
path arraymanager
- theMenuSelectionManager
-
menuSelectionChanged
public void menuSelectionChanged(boolean isIncluded)
Messaged when the menubar selection changes to activate or deactivate this menu. This implements thejavax.swing.MenuElement
interface. OverridesMenuElement.menuSelectionChanged
.- Specified by:
menuSelectionChanged
in interfaceMenuElement
- Parameters:
isIncluded
- true if this menu is active, false if it is not- See Also:
MenuElement.menuSelectionChanged(boolean)
-
getSubElements
@BeanProperty(bound=false) public MenuElement[] getSubElements()
Returns an array ofMenuElement
s containing the submenu for this menu component. It will only return items conforming to theJMenuElement
interface. If popup menu isnull
returns an empty array. This method is required to conform to theMenuElement
interface.- Specified by:
getSubElements
in interfaceMenuElement
- Returns:
- an array of
MenuElement
objects - See Also:
MenuElement.getSubElements()
-
getComponent
public Component getComponent()
Returns thisJPopupMenu
component.- Specified by:
getComponent
in interfaceMenuElement
- Returns:
- this
JPopupMenu
object - See Also:
MenuElement.getComponent()
-
isPopupTrigger
public boolean isPopupTrigger(MouseEvent e)
Returns true if theMouseEvent
is considered a popup trigger by theJPopupMenu
's currently installed UI.- Parameters:
e
- aMouseEvent
- Returns:
- true if the mouse event is a popup trigger
- Since:
- 1.3
-
-