|
JavaTM Platform Standard Ed. 6 |
|||||||||
上一个类 下一个类 | 框架 无框架 | |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
java.lang.Object java.awt.Component java.awt.Container javax.swing.JComponent javax.swing.JPopupMenu
public class JPopupMenu
弹出菜单的实现,弹出菜单是一个可弹出并显示一系列选项的小窗口。JPopupMenu
用于用户在菜单栏上选择项时显示的菜单。它还用于当用户选择菜单项并激活它时显示的“右拉式 (pull-right)”菜单。最后,JPopupMenu
还可以在想让菜单显示的任何其他位置使用。例如,当用户在指定区域中右击时。
有关使用弹出菜单的示例和信息,请参阅 The Java Tutorial 中的 How to Use Menus。
警告:Swing 不是线程安全的。有关更多信息,请参阅 Swing's Threading Policy。
警告:此类的序列化对象与以后的 Swing 版本不兼容。当前序列化支持适用于短期存储,或适用于在运行相同 Swing 版本的应用程序之间进行 RMI(Remote Method Invocation,远程方法调用)。从 1.4 版本开始,已在 java.beans
包中添加了支持所有 JavaBeansTM 长期存储的功能。请参见 XMLEncoder
。
嵌套类摘要 | |
---|---|
protected class |
JPopupMenu.AccessibleJPopupMenu
此类实现 JPopupMenu 类的可访问性支持。 |
static class |
JPopupMenu.Separator
弹出与菜单有关的分隔符。 |
从类 javax.swing.JComponent 继承的嵌套类/接口 |
---|
JComponent.AccessibleJComponent |
从类 java.awt.Container 继承的嵌套类/接口 |
---|
Container.AccessibleAWTContainer |
从类 java.awt.Component 继承的嵌套类/接口 |
---|
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy |
字段摘要 |
---|
从类 javax.swing.JComponent 继承的字段 |
---|
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW |
从类 java.awt.Component 继承的字段 |
---|
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT |
从接口 java.awt.image.ImageObserver 继承的字段 |
---|
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH |
构造方法摘要 | |
---|---|
JPopupMenu()
构造一个不带“调用者”的 JPopupMenu 。 |
|
JPopupMenu(String label)
构造一个具有指定标题的 JPopupMenu 。 |
方法摘要 | |
---|---|
JMenuItem |
add(Action a)
将指派指定 Action 对象的新菜单项添加到菜单的末尾。 |
JMenuItem |
add(JMenuItem menuItem)
将指定菜单项添加到此菜单的末尾。 |
JMenuItem |
add(String s)
创建具有指定文本的菜单项,并将其添加到此菜单的末尾。 |
void |
addMenuKeyListener(MenuKeyListener l)
将 MenuKeyListener 添加到弹出菜单。 |
void |
addPopupMenuListener(PopupMenuListener l)
添加 PopupMenu 侦听器。 |
void |
addSeparator()
将新分隔符添加到菜单的末尾。 |
protected PropertyChangeListener |
createActionChangeListener(JMenuItem b)
返回一个正确配置的 PropertyChangeListener ,它在 Action 发生更改时更新控件。 |
protected JMenuItem |
createActionComponent(Action a)
该工厂方法为添加到 JPopupMenu 的 Action 创建对应的 JMenuItem 。 |
protected void |
firePopupMenuCanceled()
通知 PopupMenuListener 此弹出菜单将被取消。 |
protected void |
firePopupMenuWillBecomeInvisible()
通知 PopupMenuListener 此弹出菜单将变得不可见。 |
protected void |
firePopupMenuWillBecomeVisible()
通知 PopupMenuListener 此弹出菜单将变得可见。 |
AccessibleContext |
getAccessibleContext()
获取与此 JPopupMenu 关联的 AccessibleContext。 |
Component |
getComponent()
返回此 JPopupMenu 组件。 |
Component |
getComponentAtIndex(int i)
已过时。 由 Container.getComponent(int) 取代 |
int |
getComponentIndex(Component c)
返回指定组件的索引。 |
static boolean |
getDefaultLightWeightPopupEnabled()
获取 defaultLightWeightPopupEnabled 属性,默认情况下,该属性为 true 。 |
Component |
getInvoker()
返回作为此弹出菜单的“调用者”的组件。 |
String |
getLabel()
返回弹出菜单的标签。 |
Insets |
getMargin()
返回弹出菜单的边框与其包含内容之间的空白(以像素表示)。 |
MenuKeyListener[] |
getMenuKeyListeners()
返回利用 addMenuKeyListener() 添加到此 JPopupMenu 的所有 MenuKeyListener 组成的数组。 |
PopupMenuListener[] |
getPopupMenuListeners()
返回利用 addPopupMenuListener() 添加到此 JMenuItem 的所有 PopupMenuListener 组成的数组。 |
SingleSelectionModel |
getSelectionModel()
返回处理单个选择的模型对象。 |
MenuElement[] |
getSubElements()
返回 MenuElement 组成的数组,包含此菜单组件的子菜单。 |
PopupMenuUI |
getUI()
返回用于呈现此组件的外观 (L&F) 对象。 |
String |
getUIClassID()
返回用于呈现此组件的 L&F 类名。 |
void |
insert(Action a,
int index)
在给定位置插入指定 Action 对象的菜单项。 |
void |
insert(Component component,
int index)
将指定组件插入到菜单的给定位置。 |
boolean |
isBorderPainted()
检查是否应该绘制边框。 |
boolean |
isLightWeightPopupEnabled()
获取 lightWeightPopupEnabled 属性。 |
boolean |
isPopupTrigger(MouseEvent e)
如果 JPopupMenu 的当前安装 UI 将 MouseEvent 视为弹出菜单触发器,则返回 true。 |
boolean |
isVisible()
如果弹出菜单可见(当前显示的),则返回 true。 |
void |
menuSelectionChanged(boolean isIncluded)
当菜单栏选择发生更改以激活或取消激活此菜单时传递消息。 |
void |
pack()
布置容器,让它使用显示其内容所需的最小空间。 |
protected void |
paintBorder(Graphics g)
如果 borderPainted 属性为 true ,则绘制弹出菜单的边框。 |
protected String |
paramString()
返回此 JPopupMenu 的字符串表示形式。 |
protected void |
processFocusEvent(FocusEvent evt)
处理组件上发生的焦点事件,方法是将其指派到任意已注册的 FocusListener 对象。 |
protected void |
processKeyEvent(KeyEvent evt)
处理快捷键事件,如助记符和加速器。 |
void |
processKeyEvent(KeyEvent e,
MenuElement[] path,
MenuSelectionManager manager)
如有必要,通过使用 MenuSelectionManager 的 API 处理从 MenuSelectionManager 转发的键事件并更改菜单选择。 |
void |
processMouseEvent(MouseEvent event,
MenuElement[] path,
MenuSelectionManager manager)
要求此方法遵守 MenuElement 接口,但它没有被实现。 |
void |
remove(int pos)
从此弹出菜单移除指定索引处的组件。 |
void |
removeMenuKeyListener(MenuKeyListener l)
从弹出菜单移除 MenuKeyListener 。 |
void |
removePopupMenuListener(PopupMenuListener l)
移除 PopupMenu 侦听器。 |
void |
setBorderPainted(boolean b)
设置是否应该绘制边框。 |
static void |
setDefaultLightWeightPopupEnabled(boolean aFlag)
设置 lightWeightPopupEnabled 属性的默认值。 |
void |
setInvoker(Component invoker)
设置此弹出菜单的调用者,即弹出菜单在其中显示的组件。 |
void |
setLabel(String label)
设置弹出菜单的标签。 |
void |
setLightWeightPopupEnabled(boolean aFlag)
设置 lightWeightPopupEnabled 属性的值,默认情况下该值为 true 。 |
void |
setLocation(int x,
int y)
使用 X、Y 坐标设置弹出菜单的左上角的位置。 |
void |
setPopupSize(Dimension d)
使用 Dimension 对象设置弹出窗口的大小。 |
void |
setPopupSize(int width,
int height)
将弹出窗口的大小设置为指定的宽度和高度。 |
void |
setSelected(Component sel)
设置当前选择的组件,此方法将更改选择模型。 |
void |
setSelectionModel(SingleSelectionModel model)
设置处理单个选择的模型对象。 |
void |
setUI(PopupMenuUI ui)
设置呈现此组件的 L&F 对象。 |
void |
setVisible(boolean b)
设置弹出菜单的可见性。 |
void |
show(Component invoker,
int x,
int y)
在组件调用者的坐标空间中的位置 X、Y 显示弹出菜单。 |
void |
updateUI()
将 UI 属性重置为一个来自当前外观的值。 |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
构造方法详细信息 |
---|
public JPopupMenu()
JPopupMenu
。
public JPopupMenu(String label)
JPopupMenu
。
label
- 可以被 UI 用作弹出菜单的标题显示的字符串。方法详细信息 |
---|
public static void setDefaultLightWeightPopupEnabled(boolean aFlag)
lightWeightPopupEnabled
属性的默认值。
aFlag
- 如果弹出菜单为轻量级,则为 true
;否则为 false
getDefaultLightWeightPopupEnabled()
,
setLightWeightPopupEnabled(boolean)
public static boolean getDefaultLightWeightPopupEnabled()
defaultLightWeightPopupEnabled
属性,默认情况下,该属性为 true
。
defaultLightWeightPopupEnabled
属性的值setDefaultLightWeightPopupEnabled(boolean)
public PopupMenuUI getUI()
PopupMenuUI
对象public void setUI(PopupMenuUI ui)
ui
- 新 PopupMenuUI
L&F 对象UIDefaults.getUI(javax.swing.JComponent)
public void updateUI()
JComponent
中的 updateUI
JComponent.updateUI()
public String getUIClassID()
JComponent
中的 getUIClassID
JComponent.getUIClassID()
,
UIDefaults.getUI(javax.swing.JComponent)
protected void processFocusEvent(FocusEvent evt)
Component
复制的描述FocusListener
对象。
如果组件上没有启用焦点事件,则不调用此方法。发生下列之一时启用焦点事件:
addFocusListener
注册了一个 FocusListener
对象。
enableEvents
启用了焦点事件。
如果为某个 Component
启用了焦点事件,则当前的 KeyboardFocusManager
确定是否应该将焦点事件指派到已注册的 FocusListener
对象。如果未指派事件,则 KeyboardFocusManager
调用 Component
的 dispatchEvent
方法,此方法又调用 Component
的 processFocusEvent
方法。
如果为 Component
启用了焦点事件,则用 FocusEvent
作为参数来调用 Component
的 dispatchEvent
方法将导致调用 Component
的 processFocusEvent
方法,而不管当前的 KeyboardFocusManager
如何。
注意,如果事件参数为 null
,则未指定行为并且可能导致异常。
Component
中的 processFocusEvent
evt
- 焦点事件FocusEvent
,
FocusListener
,
KeyboardFocusManager
,
Component.addFocusListener(java.awt.event.FocusListener)
,
Component.enableEvents(long)
,
Component.dispatchEvent(java.awt.AWTEvent)
protected void processKeyEvent(KeyEvent evt)
JComponent
中的 processKeyEvent
evt
- 要处理的键事件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()
public SingleSelectionModel getSelectionModel()
selectionModel
属性SingleSelectionModel
public void setSelectionModel(SingleSelectionModel model)
model
- 新 SingleSelectionModel
SingleSelectionModel
public JMenuItem add(JMenuItem menuItem)
menuItem
- 要添加的 JMenuItem
JMenuItem
public JMenuItem add(String s)
s
- 要添加的菜单项的字符串public JMenuItem add(Action a)
Action
对象的新菜单项添加到菜单的末尾。
a
- 要添加到菜单的 Action
Action
protected JMenuItem createActionComponent(Action a)
JPopupMenu
的 Action
创建对应的 JMenuItem
。
a
- 要添加的菜单项的 Action
Action
protected PropertyChangeListener createActionChangeListener(JMenuItem b)
PropertyChangeListener
,它在 Action
发生更改时更新控件。
public void remove(int pos)
Container
中的 remove
pos
- 要移除的项的位置
IllegalArgumentException
- 如果 pos
的值 < 0 或者 pos
的值大于项数Container.add(java.awt.Component)
,
Container.validate()
,
Container.getComponentCount()
public void setLightWeightPopupEnabled(boolean aFlag)
lightWeightPopupEnabled
属性的值,默认情况下该值为 true
。默认情况下,当外观显示弹出菜单时,它选择使用轻量级(纯 Java 的)弹出菜单。轻量级弹出窗口比重量级(本机同位体)窗口效果更好,但是轻量级和重量级组件在 GUI 中不能很好地混合使用。如果应用程序混合使用轻量级和重量级组件,则应该禁用轻量级弹出窗口。某些外观可能始终使用重量级弹出菜单,不管此属性的值如何。
aFlag
- 为 false
表示禁用轻量级弹出菜单isLightWeightPopupEnabled()
public boolean isLightWeightPopupEnabled()
lightWeightPopupEnabled
属性。
lightWeightPopupEnabled
属性的值setLightWeightPopupEnabled(boolean)
public String getLabel()
setLabel(java.lang.String)
public void setLabel(String label)
label
- 指定弹出菜单标签的字符串setLabel(java.lang.String)
public void addSeparator()
public void insert(Action a, int index)
Action
对象的菜单项。
a
- 要插入的 Action
对象index
- 指定插入 Action
的位置,其中 0 为第一个
IllegalArgumentException
- 如果 index
< 0Action
public void insert(Component component, int index)
component
- 要插入的 Component
index
- 指定插入组件的位置,其中 0 为第一个
IllegalArgumentException
- 如果 index
< 0public void addPopupMenuListener(PopupMenuListener l)
PopupMenu
侦听器。
l
- 要添加的 PopupMenuListener
public void removePopupMenuListener(PopupMenuListener l)
PopupMenu
侦听器。
l
- 要移除的 PopupMenuListener
public PopupMenuListener[] getPopupMenuListeners()
PopupMenuListener
组成的数组。
PopupMenuListener
,如果没有添加侦听器,则返回一个空数组public void addMenuKeyListener(MenuKeyListener l)
MenuKeyListener
添加到弹出菜单。
l
- 要添加的 MenuKeyListener
public void removeMenuKeyListener(MenuKeyListener l)
MenuKeyListener
。
l
- 要移除的 MenuKeyListener
public MenuKeyListener[] getMenuKeyListeners()
MenuKeyListener
组成的数组。
MenuKeyListener
,如果没有添加侦听器,则返回一个空数组protected void firePopupMenuWillBecomeVisible()
PopupMenuListener
此弹出菜单将变得可见。
protected void firePopupMenuWillBecomeInvisible()
PopupMenuListener
此弹出菜单将变得不可见。
protected void firePopupMenuCanceled()
PopupMenuListener
此弹出菜单将被取消。
public void pack()
public void setVisible(boolean b)
JComponent
中的 setVisible
b
- 为 true 表示使弹出菜单可见,为 false 表示隐藏它Component.isVisible()
public boolean isVisible()
Component
中的 isVisible
true
;否则返回 false
Component.setVisible(boolean)
public void setLocation(int x, int y)
Component
中的 setLocation
x
- 屏幕坐标空间中弹出菜单的新位置的 X 坐标y
- 屏幕坐标空间中弹出菜单的新位置的 Y 坐标Component.getLocation()
,
Component.setBounds(int, int, int, int)
public Component getInvoker()
Component
public void setInvoker(Component invoker)
invoker
- 弹出菜单在其中显示的 Component
public void show(Component invoker, int x, int y)
invoker
- 弹出菜单在其空间中显示的组件x
- 用于显示弹出菜单的调用者的坐标空间中的 X 坐标y
- 用于显示弹出菜单的调用者的坐标空间中的 Y 坐标@Deprecated public Component getComponentAtIndex(int i)
Container.getComponent(int)
取代
i
- 组件的索引,其中 0 为第一个
Component
public int getComponentIndex(Component c)
c
- 要查找的 Component
public void setPopupSize(Dimension d)
Dimension
对象设置弹出窗口的大小。此操作等效于 setPreferredSize(d)
。
d
- 指定此组件新的大小的 Dimension
。public void setPopupSize(int width, int height)
setPreferredSize(new Dimension(width, height))
。
width
- 弹出窗口的新宽度(以像素为单位)height
- 弹出窗口的新高度(以像素为单位)public void setSelected(Component sel)
sel
- 要选择的 Component
public boolean isBorderPainted()
setBorderPainted(boolean)
public void setBorderPainted(boolean b)
b
- 如果为 true,则绘制边框。isBorderPainted()
protected void paintBorder(Graphics g)
borderPainted
属性为 true
,则绘制弹出菜单的边框。
JComponent
中的 paintBorder
g
- Graphics
对象JComponent.paint(java.awt.Graphics)
,
JComponent.setBorder(javax.swing.border.Border)
public Insets getMargin()
Insets
对象。protected String paramString()
JPopupMenu
的字符串表示形式。此方法仅在进行调试的时候使用,对于各个实现,所返回字符串的内容和格式可能有所不同。返回的字符串可能为空,但不可能为 null
。
JComponent
中的 paramString
JPopupMenu
的字符串表示形式。public AccessibleContext getAccessibleContext()
Accessible
中的 getAccessibleContext
JComponent
中的 getAccessibleContext
public void processMouseEvent(MouseEvent event, MenuElement[] path, MenuSelectionManager manager)
MenuElement
接口,但它没有被实现。
MenuElement
中的 processMouseEvent
MenuElement.processMouseEvent(MouseEvent, MenuElement[], MenuSelectionManager)
public void processKeyEvent(KeyEvent e, MenuElement[] path, MenuSelectionManager manager)
MenuSelectionManager
的 API 处理从 MenuSelectionManager
转发的键事件并更改菜单选择。
注:不必将事件转发到子组件。此操作可以通过 MenuSelectionManager
自动完成。
MenuElement
中的 processKeyEvent
e
- KeyEvent
path
- MenuElement
路径数组manager
- MenuSelectionManager
public void menuSelectionChanged(boolean isIncluded)
javax.swing.MenuElement
接口。重写 MenuElement.menuSelectionChanged
。
MenuElement
中的 menuSelectionChanged
isIncluded
- 如果此菜单处于激活状态,则为 true;如果不是,则为 falseMenuElement.menuSelectionChanged(boolean)
public MenuElement[] getSubElements()
MenuElement
组成的数组,包含此菜单组件的子菜单。它将只返回遵守 JMenuElement
接口的项。如果弹出菜单为 null
,则返回空数组。要求此方法遵守 MenuElement
接口。
MenuElement
中的 getSubElements
MenuElement
对象的数组MenuElement.getSubElements()
public Component getComponent()
JPopupMenu
组件。
MenuElement
中的 getComponent
JPopupMenu
对象MenuElement.getComponent()
public boolean isPopupTrigger(MouseEvent e)
JPopupMenu
的当前安装 UI 将 MouseEvent
视为弹出菜单触发器,则返回 true。
|
JavaTM Platform Standard Ed. 6 |
|||||||||
上一个类 下一个类 | 框架 无框架 | |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。