|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
java.lang.Objectjava.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;否则为 falsegetDefaultLightWeightPopupEnabled(),
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 中的 updateUIJComponent.updateUI()public String getUIClassID()
JComponent 中的 getUIClassIDJComponent.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 中的 processFocusEventevt - 焦点事件FocusEvent,
FocusListener,
KeyboardFocusManager,
Component.addFocusListener(java.awt.event.FocusListener),
Component.enableEvents(long),
Component.dispatchEvent(java.awt.AWTEvent)protected void processKeyEvent(KeyEvent evt)
JComponent 中的 processKeyEventevt - 要处理的键事件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 属性SingleSelectionModelpublic void setSelectionModel(SingleSelectionModel model)
model - 新 SingleSelectionModelSingleSelectionModelpublic JMenuItem add(JMenuItem menuItem)
menuItem - 要添加的 JMenuItem
JMenuItempublic JMenuItem add(String s)
s - 要添加的菜单项的字符串public JMenuItem add(Action a)
Action 对象的新菜单项添加到菜单的末尾。
a - 要添加到菜单的 Action
Actionprotected JMenuItem createActionComponent(Action a)
JPopupMenu 的 Action 创建对应的 JMenuItem。
a - 要添加的菜单项的 Action
Actionprotected PropertyChangeListener createActionChangeListener(JMenuItem b)
PropertyChangeListener,它在 Action 发生更改时更新控件。
public void remove(int pos)
Container 中的 removepos - 要移除的项的位置
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 - 要插入的 Componentindex - 指定插入组件的位置,其中 0 为第一个
IllegalArgumentException - 如果 index < 0public void addPopupMenuListener(PopupMenuListener l)
PopupMenu 侦听器。
l - 要添加的 PopupMenuListenerpublic void removePopupMenuListener(PopupMenuListener l)
PopupMenu 侦听器。
l - 要移除的 PopupMenuListenerpublic PopupMenuListener[] getPopupMenuListeners()
PopupMenuListener 组成的数组。
PopupMenuListener,如果没有添加侦听器,则返回一个空数组public void addMenuKeyListener(MenuKeyListener l)
MenuKeyListener 添加到弹出菜单。
l - 要添加的 MenuKeyListenerpublic void removeMenuKeyListener(MenuKeyListener l)
MenuKeyListener。
l - 要移除的 MenuKeyListenerpublic 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 中的 setVisibleb - 为 true 表示使弹出菜单可见,为 false 表示隐藏它Component.isVisible()public boolean isVisible()
Component 中的 isVisibletrue;否则返回 falseComponent.setVisible(boolean)
public void setLocation(int x,
int y)
Component 中的 setLocationx - 屏幕坐标空间中弹出菜单的新位置的 X 坐标y - 屏幕坐标空间中弹出菜单的新位置的 Y 坐标Component.getLocation(),
Component.setBounds(int, int, int, int)public Component getInvoker()
Componentpublic 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 为第一个
Componentpublic 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 - 要选择的 Componentpublic boolean isBorderPainted()
setBorderPainted(boolean)public void setBorderPainted(boolean b)
b - 如果为 true,则绘制边框。isBorderPainted()protected void paintBorder(Graphics g)
borderPainted 属性为 true,则绘制弹出菜单的边框。
JComponent 中的 paintBorderg - Graphics 对象JComponent.paint(java.awt.Graphics),
JComponent.setBorder(javax.swing.border.Border)public Insets getMargin()
Insets 对象。protected String paramString()
JPopupMenu 的字符串表示形式。此方法仅在进行调试的时候使用,对于各个实现,所返回字符串的内容和格式可能有所不同。返回的字符串可能为空,但不可能为 null。
JComponent 中的 paramStringJPopupMenu 的字符串表示形式。public AccessibleContext getAccessibleContext()
Accessible 中的 getAccessibleContextJComponent 中的 getAccessibleContext
public void processMouseEvent(MouseEvent event,
MenuElement[] path,
MenuSelectionManager manager)
MenuElement 接口,但它没有被实现。
MenuElement 中的 processMouseEventMenuElement.processMouseEvent(MouseEvent, MenuElement[], MenuSelectionManager)
public void processKeyEvent(KeyEvent e,
MenuElement[] path,
MenuSelectionManager manager)
MenuSelectionManager 的 API 处理从 MenuSelectionManager 转发的键事件并更改菜单选择。
注:不必将事件转发到子组件。此操作可以通过 MenuSelectionManager 自动完成。
MenuElement 中的 processKeyEvente - KeyEventpath - MenuElement 路径数组manager - MenuSelectionManagerpublic void menuSelectionChanged(boolean isIncluded)
javax.swing.MenuElement 接口。重写 MenuElement.menuSelectionChanged。
MenuElement 中的 menuSelectionChangedisIncluded - 如果此菜单处于激活状态,则为 true;如果不是,则为 falseMenuElement.menuSelectionChanged(boolean)public MenuElement[] getSubElements()
MenuElement 组成的数组,包含此菜单组件的子菜单。它将只返回遵守 JMenuElement 接口的项。如果弹出菜单为 null,则返回空数组。要求此方法遵守 MenuElement 接口。
MenuElement 中的 getSubElementsMenuElement 对象的数组MenuElement.getSubElements()public Component getComponent()
JPopupMenu 组件。
MenuElement 中的 getComponentJPopupMenu 对象MenuElement.getComponent()public boolean isPopupTrigger(MouseEvent e)
JPopupMenu 的当前安装 UI 将 MouseEvent 视为弹出菜单触发器,则返回 true。
|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。