知识大全 鼠标右键的使用和启动弹出式菜单

Posted 菜单

篇首语:我相信:一切事物的价值必将重新得到评估。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 鼠标右键的使用和启动弹出式菜单相关的知识,希望对你有一定的参考价值。

  本文将通过实例介绍如何用鼠标右键启动弹出式菜单 以及如何执行菜单的   指令     大家对弹出式菜单(Popup Menu)的使用相信都非常熟悉了   我们将通过如下的例子解释如何在Java中使用右键和弹出式菜单 主程序是一个Java Application   叫UseRightButton 它上面是一个JPanel 在此JPanel上有一个JLabel 用以显示弹出式菜单   中指令执行的结果 我们要求当用鼠标右键点击JLabel或者JPanel上时弹出一个菜单 菜单   中有 Say Hello Say Hello again Say Byebye 三个选项 选择其中的任何一个指令 将在   JLabel中显示对应的String     在本例中有两个Class 一个是UseRightButton (Java应用程序) 另一个是MyPopupMenu   (弹出式窗口) UseRightButton的源程序如下             import javax swing *;import java awt event MouseEvent;import java awt event MouseListener;import java awt *;public class UseRightButton extends JFrame implements MouseListener JPanel panel; JLabel display; public UseRightButton() setTitle( Use right button and popup menu ); setSize( ); panel = new JPanel(); display = new JLabel( ); display setOpaque(true); display setBackground(Color yellow); panel add(display); panel addMouseListener(this); display addMouseListener(this); getContentPane() setLayout(new BorderLayout()); getContentPane() add(panel BorderLayout CENTER); public static void main(String[] args) UseRightButton rb = new UseRightButton(); rb setVisible(true); public void mousePressed(MouseEvent e) if (e getSource() == panel && e getButton() == MouseEvent BUTTON ) MyPopupMenu popup = new MyPopupMenu(this); popup show((Component)panel e getX() e getY()); else if (e getSource() == display && e getButton() == MouseEvent BUTTON ) MyPopupMenu popup = new MyPopupMenu(this); popup show((Component)display e getX() e getY()); public void mouseEntered(MouseEvent e) public void mouseExited(MouseEvent e) public void mouseClicked(MouseEvent e) public void mouseReleased(MouseEvent e)     从上面的程序我们看到           和使用鼠标左键一样 我们是用 来控制鼠标事件 我们所要做的是限制 MouseEvent 响应鼠标右键的点击 不响应鼠标左键的点击 这可由下面的方法来实现   e getButton() == MouseEvent BUTTON   其中 getButton() 方法返回一个整数   MouseEvent BUTTON   MouseEvent BUTTON 或者   MouseEvent BUTTON   MouseEvent BUTTON 代表左键   MouseEvent BUTTON 代表右键 如果你的鼠标有三个   键的话 MouseEvent BUTTON 代表中间的键       JLabel (display)仅仅占据 JPanel 的一小部分(我们用黄色背景显示它的大小和位置)   而我们要求当右键电击JPanel 包括JLabel 都要弹出菜单 所以我们把JPanel和   JLabel都加上MouseListener         弹出式菜单Class的源程序如下       import javax swing *;import java awt event ActionListener;import java awt event ActionEvent;public class MyPopupMenu extends JPopupMenu implements ActionListener JMenuItem sayHello sayHelloAgain sayByeBye; UseRightButton useRightButton; public MyPopupMenu(UseRightButton urb) useRightButton = urb; sayHello = new JMenuItem( Say Hello ); sayHelloAgain = new JMenuItem( Say Hello again ); sayByeBye = new JMenuItem( Say Bye Bye ); sayHello addActionListener(this); sayHelloAgain addActionListener(this); sayByeBye addActionListener(this); add(sayHello); this addSeparator(); add(sayHelloAgain); add(sayByeBye); public void actionPerformed(ActionEvent e) if (e getSource() == sayHello) System out println(); useRightButton display setText( Hello! ); else if (e getSource() == sayHelloAgain) System out println( Hello! Hello! ); useRightButton display setText( Hello! Hello! ); else if (e getSource() == sayByeBye) System out println( Bye Bye! ); useRightButton display setText( Bye Bye! );     这个程序很简单 是一个标准的JPopupMenu 唯一需要指出的是在   constructor中我们引入该弹出式菜单的 base 类 UseRightButton 这是因为   我们要返回弹出式窗口中指令执行的结果到原来的GUI界面上 很显然我们   不能用 useRightButton = new UseRightButton() 因为两个class不能互相引用   对于一个复杂的应用程序 我们应该使用Model View Controller架构来作 即   用弹出式菜单当controller 用JLabel (display)作为View 再写一个model类来接   收来自弹出式菜单的String 并自动更新JLabel中的显示     从以上的例子我们看到利用鼠标右键来启动弹出式菜单是非常容易的    cha138/Article/program/Java/JSP/201311/19180

相关参考

知识大全 禁止鼠标右键的几种方法

cha138/Article/program/Java/JSP/201311/19657

知识大全 华硕x450c的笔记本触控板如何实现鼠标右键的功能

华硕x450c的笔记本触控板如何实现鼠标右键的功能尊敬的华硕用户,您好!根据您的描述,建议您参考以下信息:触控板的右下角,可以稍用力按下试试。appleair笔记本触控板的鼠标右键在哪里AIR的触控板

知识大全 js为鼠标添加右击事件防止默认的菜单弹出

  本文为大家介绍下如何为使用js为鼠标添加右击事件防止默认的右击菜单弹出感兴趣的朋友可以参考下希望对大家有所帮助【责编:at】cha138/Article/program/Java/JSP

知识大全 js为鼠标添加右击事件防止默认的右击菜单弹出

本文为大家介绍下如何为使用js为鼠标添加右击事件防止默认的右击菜单弹出感兴趣的朋友可以参考下希望对大家有所帮助 复制代码代码如下:cha138/Article/program/Ja

知识大全 如何实现浏览器上的右键菜单

今天和大家一起学习一下如何在浏览器中实现类似于应用程序的鼠标右击后出现右键菜单的效果  首先要解决的问题是在怎样的情况鼠标右击不会出现IE的菜单思路可以有两个一个是将焦点移开还有一个就是点在网页的什么

知识大全 应用程序敏感键的实现

  在一个应用程序内部菜单部件都可以设置敏感键如在菜单中一般用Alt+F进入文件之类的子菜单另外我们在桌面上设置的快捷方式里的快捷键无论你任何时候按下你所设置的快捷键就会启动相应的应用程序在多个正在运

知识大全 在酷狗中怎么才能把格式改成mp3的

在酷狗中怎么才能把格式改成mp3的1、选定歌曲:在需要操作的歌曲上(注意只有在播放列表中),点击鼠标右键,选择“格式转换”,弹出“格式转换工具”窗口或者从开始菜单中的酷狗音乐文件夹中选取格式转换工具,

知识大全 利用.net控件实现下拉导航菜单制作的具体方法

这篇文章介绍了利用net控件实现下拉导航菜单制作的具体方法有需要的朋友可以参考一下希望对你有所帮助   今天的一个小测试是老师让用NET用控件来制作一个拉菜单要求如下将鼠标移到父菜单上弹出个

知识大全 电脑下方的工具栏,有开始菜单的那栏 求高手帮助

xp系统电脑工具栏怎么改变位置电脑下方的工具栏,有开始菜单的那栏求高手帮助!你先在任务栏上点右键,把锁定任务栏前面的对号去掉,然后用鼠标点着任务栏的空白区域可以拖动到桌面你想拖到的边上。如何改变电脑工

知识大全 自定义右键菜单代码详解

<style><!/*定义菜单方框的样式*/skinposition:absolute;textalign:left;width:px;/*宽度可以根据实际的菜单项目名称的长度进行适