- 浏览: 2046125 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (795)
- java (263)
- 聚类搜索引擎 (9)
- 经验之谈 (67)
- DSP (3)
- C++ (140)
- Linux (37)
- SNMP (6)
- Python (6)
- 数据库 (61)
- 网络 (20)
- 算法 (15)
- 设计模式 (4)
- 笔试题 (38)
- 散文 (35)
- 数据结构 (9)
- 银行知识 (0)
- 榜样 (9)
- Lucene (15)
- Heritrix (6)
- MetaSeeker (0)
- netbeans (12)
- php (3)
- 英语 (8)
- DB2 (0)
- java基础 (5)
- mongodb & hadoop (4)
- Javascript (7)
- Spring (4)
- ibatis & myibatis (1)
- velocity (1)
- 微服务 (0)
- paddle (1)
- 第三方 (0)
- 知识沉淀 (1)
- 建模 (0)
最新评论
-
0372:
标示对java很陌生!
中文乱码解决的4种方式 -
梦留心痕:
Java中\是转意字符, 可是你的这句话我没看懂,只要把得到的 ...
java中如何忽略字符串中的转义字符--转载 -
yanjianpengit:
[b][/b]
java为什么非静态内部类里面不能有静态成员 -
springdata-jpa:
可以参考最新的文档:如何在eclipse jee中检出项目并转 ...
eclipse 如何把java项目转成web项目 -
qq1130127172:
,非常好。
(转)SpringMVC 基于注解的Controller @RequestMapping @RequestParam..
弹出式菜单—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
import java.awt.*; import java.awt.event.*; import javax.swing.*; //左键弹出菜单 public class JPopMenuDemo extends JFrame { JRadioButtonMenuItem items[]; //菜单项 Color[] colors={Color.blue,Color.pink,Color.yellow,Color.red,Color.orange}; //颜色数组 JPopupMenu popupMenu; //弹出菜单 public JPopMenuDemo() { super( "右键弹出菜单" ); //调用父类构造函数 ChangeColorAction action = new ChangeColorAction(); //菜单项事件处理 String[] str = {"Blue","Pink","Yellow","Red","Orange"}; //菜单项名称 ButtonGroup colorGroup=new ButtonGroup(); //实例化按钮组 popupMenu=new JPopupMenu(); //实例化弹出菜单 items=new JRadioButtonMenuItem[5]; //初始化数组 for (int i=0;i<items.length;i++) { items[i]=new JRadioButtonMenuItem(str[i]); //实例化菜单项 popupMenu.add(items[i]); //增加菜单项到菜单上 colorGroup.add(items[i]); //增加菜单项到按钮组 items[i].addActionListener(action); //菜单项事件处理 } addMouseListener(new MouseAdapter(){ //窗口的鼠标事件处理 public void mousePressed( MouseEvent event ) { //点击鼠标 triggerEvent(event); //调用triggerEvent方法处理事件 } public void mouseReleased( MouseEvent event ) { //释放鼠标 triggerEvent(event); //只有释放才好使 } private void triggerEvent(MouseEvent event) { //处理事件 if (event.isPopupTrigger()) //如果是弹出菜单事件(根据平台不同可能不同) popupMenu.show(event.getComponent(),event.getX(),event.getY()); //显示菜单 } }); getContentPane().setBackground(Color.white); //窗口的默认背景色为白色 setSize(230,160); //设置窗口大小 setVisible(true); //设置窗口为可视 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE ); //关闭窗口时退出程序 } class ChangeColorAction implements ActionListener { //菜单项事件处理 public void actionPerformed(ActionEvent event) { for (int i=0;i<items.length;i++) if (event.getSource()==items[i]) { //判断事件来自于哪个菜单项 getContentPane().setBackground(colors[i]); //设置窗口背景 repaint(); //重绘窗口 return; } } } public static void main( String args[]) { new JPopMenuDemo(); } }
发表评论
-
流式计算
2022-02-07 14:31 279private void postHandle(List& ... -
消息队列使用的四种场景介绍
2018-08-09 16:34 2471以下介绍消息队列在实际应用中常用的使用场 ... -
设计模式
2018-04-11 16:49 9801.桥梁模式,将抽象部分与实现部分隔离开,抽象部分持有实现 ... -
Spring boot web可以访问Service和Mapper层
2018-03-26 16:42 2861Spring boot的web层可以访问Service层,然 ... -
FreeMarker的基础语法使用 && 心得和技巧
2018-01-10 10:03 2053FreeMarker是一个模板引 ... -
webService----wss4j+cxf实现WS-Security(基于UsernameToken)
2017-10-23 18:58 1554分享一下wss4j+cxf基于UsernameToken的安 ... -
Spring MVC之LocaleResolver(解析用户区域)
2017-09-23 15:55 2517为了让web应用程序支持国际化,必须识别每个用户的首选区域, ... -
(转)java泛型
2016-11-12 20:29 1646http://www.cnblogs.com/lwbqqyu ... -
java中如何忽略字符串中的转义字符--转载
2016-06-28 16:42 9899原文地址:http://my ... -
(转)关于JAP FetchType.LAZY(hibernate实现)的理解 .
2016-04-27 15:22 5104JPA定义实体之间的关系有如下几种: @OneToOne ... -
(转)hibernate annotation注解方式来处理映射关系
2016-04-26 16:52 1836http://www.cnblogs.com/xiao ... -
代码片段,导出的文件头
2015-11-18 20:34 1600public static void setDownload ... -
(转)为什么要两次调用encodeURI来解决乱码问题
2015-08-03 20:19 2481地址:http://blog.csdn.net/howla ... -
杀死进程
2015-07-21 14:54 1285sudo lsof -i :9000 COMMAND P ... -
批处理batch,执行多个SQL语句
2015-07-15 19:21 10609批处理batch,执行多个SQL语句。 ... -
中文乱码解决的4种方式
2015-07-03 14:20 2627目前收集到4中方法,中文传参一documentPath为例: ... -
GET请求的中文乱码问题及处理意义
2015-07-03 13:47 6631首先看一段乱码的程序 ... -
java.ByteArrayInputStream与ByteArrayOutputStream再次理解
2015-03-16 17:59 3235第一次看到ByteArrayOutputStream的时 ... -
(转)SpringMVC 基于注解的Controller @RequestMapping @RequestParam..
2014-07-28 17:42 2272概述 继 Spring 2.0 对 Spring MVC ... -
java中序列化的serialVersionUID解释
2014-07-25 09:26 1883serialVersionUID: 字面意思上是序列化的版本号 ...
相关推荐
JPopupMenu 是 Swing 中的一个控件,用于创建弹出式菜单。弹出式菜单只有在用户执行了与平台相关的鼠标操作后才能出现。例如,在一个支持弹出式菜单的控件上用鼠标右键单击,在鼠标所在处将弹出快捷菜单。 一个简单...
在计算机软件开发中,弹出式菜单是一种常见的交互设计元素,它允许用户通过单击或右键点击某个项目来访问更多的操作选项。这种菜单通常在主界面之外出现,且只在用户触发时显示,因此得名“弹出式”或“下拉式”菜单...
在计算机软件开发中,弹出式菜单(Pop-up Menu或Context Menu)是一种常见的用户界面元素,它可以在用户执行特定操作时动态出现,提供与当前上下文相关的选项。本篇文章将深入探讨弹出式菜单的使用,包括其设计原理...
今天,我们将学习如何使用 Java 弹出菜单来为 JTextArea 添加右键弹出式菜单,实现复制、粘贴、剪切功能。 一、Java 弹出菜单概述 Java 弹出菜单是一种 context-sensitive 菜单,即在用户点击右键时出现的菜单。它...
本文将详细讲解如何使用下拉式菜单(menu)、弹出式菜单(JPopupMenu)以及选项卡窗体(JTabbedPane)。 首先,我们来看下拉式菜单的创建。下拉式菜单在Java Swing中通常与菜单栏(MenuBar)一起使用。创建下拉式...
在GUI库如Java Swing或Qt中,可以使用JPopupMenu或QMenu类来创建弹出式菜单。这些库提供了方便的方法来添加菜单项和设置事件监听器,以响应用户的点击操作。 接下来,我们转向趣味调色板。趣味调色板是指一种创新且...
本示例着重讲解如何使用Java Swing构建菜单、右键弹出菜单(popup menu)以及工具条(toolbar)。这是一个基于Maven的项目,可以方便地导入到Eclipse IDE中进行开发和调试。 首先,我们需要了解Java Swing中的菜单...
在该设计中,我们还使用了JPopupMenu组件来创建弹出式菜单。JPopupMenu是SWT库提供的弹出式菜单组件,用于在鼠标右键点击时弹出菜单项。 在代码中,我们首先创建了一个JFrame对象,用于容纳菜单系统。然后,我们...
- **弹出式菜单 JPopupMenu**:用于创建上下文菜单。 - **基本控件**:包括按钮、复选框、文本框等。 ### Java 的文件(读写)输入输出 #### 2.1 流 - **概念**:流是 Java 中用于处理输入输出的基本概念。 - **...
对于弹出菜单事件,我们主要关注`PopupMenuListener`接口,它包含了`popupMenuWillBecomeVisible`、`popupMenuWillBecomeInvisible`和`popupMenuCanceled`三个方法,分别在弹出菜单显示前、关闭后和被取消时调用。...
Swing中的`JPopupMenu`类是用于创建弹出菜单的核心类,而在JavaFX中,你可以使用`ContextMenu`类来实现相同功能。 2. **事件监听**: 实现右键菜单的关键是添加鼠标事件监听器。在Swing中,你需要添加`MouseListener...
除了菜单栏,Swing还提供了`JPopupMenu`类,它可以用于创建弹出式菜单,常用于右键点击或按钮的上下文菜单。创建弹出式菜单并关联到组件: ```java JPopupMenu popup = new JPopupMenu(); JMenuItem copyItem = new...
2. **右键菜单**:弹出的菜单通常由`ContextMenuStrip`(C#)或`JPopupMenu`(Java)实现。你需要为这些控件添加菜单项,并为每个菜单项分配事件处理器,以便在用户点击时执行相应的操作。 3. **事件处理**:当用户...
在Java编程中,右键弹出菜单(通常称为上下文菜单)是用户界面设计中一个常见且重要的元素。它提供了一种方式,让用户在特定组件(如文本区域、表格或树视图)上通过鼠标右键点击来访问一组相关的操作。在本压缩包中...
创建弹出式菜单通常包括创建`JPopupMenu`实例,添加` JMenuItem`,然后在需要触发的地方绑定该菜单。例如,可以将弹出式菜单添加到`JComponent`上,通过`addMouseListener()`监听鼠标事件,然后在右键点击时显示菜单...
首先,你需要创建一个`JPopupMenu`实例,它是弹出式菜单的基础。例如: ```java JPopupMenu contextMenu = new JPopupMenu(); ``` 2. **添加菜单项**: 使用`add()`方法将` JMenuItem`对象添加到`JPopupMenu`中...
2. **JPopupMenu**:除了静态的菜单栏,Java还支持弹出式菜单(JPopupMenu),这种菜单会在用户的鼠标点击或者其他特定操作时动态显示。 3. **事件处理**:在Java GUI编程中,事件处理是非常关键的部分。任务中提到...
此外,我们还可以使用`javax.swing.JPopupMenu` 创建弹出式菜单,这种菜单会在鼠标点击或触发特定事件时显示。 在描述中提到的“菜单类的运用”可能指的就是这些Swing类的使用。通过继承或组合这些类,开发者可以...
总之,Java的弹出菜单为开发者提供了丰富的功能,使得在Applet或窗口应用中创建交互式用户界面变得更加便捷。无论是简单的上下文菜单还是复杂的命令集,都可以通过Popup Menu轻松实现。理解并熟练运用这些知识点,将...
2. **掌握弹出菜单的设计**:利用JPopupMenu类创建弹出式菜单,通常与按钮或其他组件关联,当用户点击该组件时弹出。 3. **掌握菜单的响应方法的编写**:为每个菜单项设置ActionListener,定义当用户选择菜单项时...