Chinaunix首页 | 论坛 | 博客
  • 博客访问: 5542870
  • 博文数量: 763
  • 博客积分: 12108
  • 博客等级: 上将
  • 技术积分: 15717
  • 用 户 组: 普通用户
  • 注册时间: 2007-09-28 21:21
个人简介

业精于勤,荒于嬉

文章分类

全部博文(763)

文章存档

2018年(6)

2017年(15)

2016年(2)

2015年(31)

2014年(14)

2013年(87)

2012年(75)

2011年(94)

2010年(190)

2009年(38)

2008年(183)

2007年(28)

分类: Java

2008-11-04 10:41:28

  弹出式菜单—JPopupMenu

JPopupMenu是一种越来越常见的菜单,本节将对JPopupMenu进行介绍,主要包括如下内容:

*     JPopupMenu类简介;

*     在NetBeans中使用JPopupMenu。

9.7.1  JPopupMenu类简介

JPopupMenu类扩展了javax.swing.JComponent,是Swing提供的一种菜单。 与其他形式菜单不同的是,JPopupMenu并不固定在菜单栏中,而是能够自由浮动。JPopupMenu具有很好的环境相关(context- sensitive)特性,每一个JPopupMenu都与相应的控件相关联,该控件被称做调用者(invoker)。

创建JPopupMenu非常简单,下面代码创建了一个JPopupMenu:

JPopupMenu myJPopupMenu=new JPopupMenu();

还可以使用JPopupMenu提供的另一个构造器创建带有标题的JPopupMenu,代码如下:

JPopupMenu titleJPopupMenu=new JPopupMenu("弹出式菜单");

与JMenu一样,开发人员可以使用add方法和insert方法向JPopupMenu中添加或者插入 JMenuItem与JComponent。JPopupMenu对添加到其中的每一个菜单项都赋予一个整数索引,并根据弹出式菜单的布局管理器调整菜单 项显示的顺序。此外,还可以使用addSeparator方法添加分隔线,并且JPopupMenu也会为该分隔线指定一个整数索引。

开发人员通过调用弹出式菜单触发器对应的show方法来显示弹出式菜单,show方法会在菜单显示之前对其location和invoker属性加以设定。

开发人员应该检查所有的MouseEvent事件,看其是否是弹出式菜单触发器,然后在合适的时候显示弹出式菜单,下面的showJPopupMenu方法在收到适当的触发器事件时就会显示弹出式菜单,代码如下:

public void showJPopupMenu(MouseEvent e){

  if(e.isPopupTrigger()){

        myJPopupMenu.show(invoker,e.getX(),e.getY());

  }

}

多种事件都可以取消弹出事件,如单击菜单项、调整调用控件的大小、移动、关闭、最小化或者最大化父窗口等。

JPopupMenu类提供了很多方法供开发人员使用,表9-7给出了其中一些常用的方法及其说明。

表9-7                                               JPopupMenu类常用方法及说明

方    法

说    明

getInvoker()

返回作为此弹出菜单的“调用者”的控件

setInvoker(Component invoker)

设置弹出菜单的调用者,即弹出菜单在其中显示的控件

addPopupMenuListener(PopupMenu Listener l)

添加PopupMenu侦听器

removePopupMenuListener(PopupMenuListener l)

移除PopupMenu侦听器

getPopupMenuListeners()

返回利用addPopupMenuListener()添加到此JMenuItem的所有PopupMenuListener组成的数组

getLabel()

返回弹出菜单的标签

setLabel(String label)

设置弹出菜单的标签

show(Component invoker,int x,int y)

在调用者的坐标空间中的位置X、Y处显示弹出菜单

getComponentIndex(Component c)

返回指定控件的索引

setPopupSize(Dimension d)

使用Dimension对象设置弹出菜单的大小。此操作等效于setPreferredSize(d)

setPopupSize(int width   int height)

将弹出菜单的大小设置为指定的宽度和高度。此操作等效于setPreferredSize(new Dimension(width, height))

getComponent()

返回此JPopupMenu控件

isPopupTrigger(MouseEvent e)

如果当前系统将MouseEvent视为弹出菜单触发器,则返回true

阅读(7655) | 评论(1) | 转发(0) |
0

上一篇:java 右键菜单 (demo)

下一篇:表单练习

给主人留下些什么吧!~~

chinaunix网友2009-07-18 15:59:09

非常感谢您的文章