MyFrame :

设计思路:

1、创建JPopup右键菜单对象;

2、添加内容面板JPanel;

3、创建一个自定义的右键菜单项目键,包括图片+名字+事件;

4、将菜单项添加到右键菜单;

5、添加面板事件处理:当右键点击面板时,出现右键菜单;

6、创建一个监听器,用于表示点击菜单项操作;

package swing01;import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.net.URL;import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPopupMenu;
import javax.swing.JToolBar;public class MyFrame extends JFrame {//弹出式菜单JPopupMenu popup=new JPopupMenu();public MyFrame(String title){super(title);//内容面板JPanel root=new JPanel();this.setContentPane(root);root.setLayout(new BorderLayout());//右键菜单popup.add( createMenuItem("ic_open.png", "fileOpen","打开"));popup.add( createMenuItem("ic_save.png", "fileSave","保存"));popup.add( createMenuItem("ic_saveas.png","fileSaveAs","另存为"));popup.addSeparator();popup.add( createMenuItem("ic_help.png", "fileHelp","帮助"));//添加鼠标响应事件,当点击右键时,弹出菜单root.addMouseListener(new MouseAdapter() {@Overridepublic void mouseClicked(MouseEvent e) {// TODO Auto-generated method stubsuper.mouseClicked(e);if(e.getButton()==MouseEvent.BUTTON3){popup.show(e.getComponent(), e.getX(), e.getY());}}});}protected JMenuItem createMenuItem(String iceName,String action,String text){JMenuItem item=new JMenuItem(text);item.setActionCommand(action);item.addActionListener(actionListener);if(iceName!=null){String imagePath="/images/"+iceName;URL imageURL=getClass().getResource(imagePath);item.setIcon(new ImageIcon(imageURL));}return item;}//创建一个监听器//注意:actionListener是类的属性private ActionListener actionListener=new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubString action=e.getActionCommand();System.out.println("执行命令:"+action);//当是打开命令时,再弹出一个窗口if(action.equals("fileOpen")){JOptionPane.showMessageDialog(MyFrame.this, action);}}};}

main

package swing01;import java.awt.Container;
import java.awt.FlowLayout;import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;public class MyDemo
{private static void createGUI(){// JFrame指一个窗口,构造方法的参数为窗口标题JFrame frame = new MyFrame("Swing Demo");frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 设置窗口的其他参数,如窗口大小frame.setSize(400, 300);// 显示窗口frame.setVisible(true);}public static void main(String[] args){javax.swing.SwingUtilities.invokeLater(new Runnable() {public void run(){createGUI();}});}
}

Swing-右键菜单相关推荐

  1. java swing 右键_java swing制作右键菜单

    java swing中如何实现右键菜单呢?    直接上代码: /*** java * 设置弹出菜单 * @param qrResultLabel */ private void setPopupMe ...

  2. Java Swing中的下拉式菜单(menu)、弹出式菜单(JPopupMenu)、选项卡窗体(JTabbedPane),TextArea右键菜单 组件使用案例

    文章目录 1.. Java弹出菜单,为JTextArea添加了右键弹出式菜单 2.:下拉式菜单的创建步骤: 3:弹出式菜单的创建步骤: 4:选项卡窗体: 菜单是GUI中最常用的组件,菜单不是Compo ...

  3. java 右键菜单_界面操作--添加右键菜单

    [java]代码库package 添加右键菜单; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; impor ...

  4. JS简单实现自定义右键菜单

    今天来讲一个关于右键菜单的小demo,抛砖引玉. 首先,我们要用css和html做一个自定义右键菜单. <!--自定义右键菜单html代码--> <div id="menu ...

  5. vue右键自定义菜单_一款小巧的开源右键菜单管理软件

    要说右键管理软件,果核上面目前收集了几款,例如年久失修的右键管家. 虽然很多年没有更新了,但是软件的功能却正常,日常删除多余的右键菜单没问题. 另外,就是火绒家的右键管家,基本功能也够用 不过嘛,今天 ...

  6. 安装ATi显卡驱动后增加的鼠标右键菜单的清理

    一般最直接的方法是: 一般位于注册表的: 删除注册表HKEY_CLASSES_ROOT\Directory \Background\shellex\ContextMenuHandlers\ACE下 a ...

  7. 【Qt】菜单栏、工具栏、状态栏、右键菜单的实现

    在QMainWidget基础上实现菜单栏.工具栏.状态栏.右键菜单. 头文件: #ifndef GWDEMO_H #define GWDEMO_H#include <QMainWindow> ...

  8. mac系统添加VSCode到右键菜单(转)

    转自:https://www.liaoxuefeng.com/wiki/001434446689867b27157e896e74d51a89c25cc8b43bdb3000/0014709690772 ...

  9. Cygwin-添加到右键菜单脚本--一键安装、卸载

    平时习惯用一些linux命令来完成工作,在Windows上有cygwin和gitbash两个选择.这两个我都装了. 相对来说cygwin支持的功能更多一些,但是它没有默认绑定到右键菜单.为此,我想到用 ...

  10. 自定义html页面鼠标右键,javascript鼠标右键菜单自定义效果

    本文实例讲解了javascript鼠标右键菜单的实现方法,分享给大家供大家参考,具体内容如下 效果图: 具体代码: #menu{ border:solid 1px gray; width:100px; ...

最新文章

  1. 来自一年的程序员的困惑
  2. andoid x项目的优化 1
  3. getopt的用法与optarg
  4. java 生产者消费者_基于JAVA的生产者消费者问题
  5. Linux恢复win分区,找到了linux分区顺序错乱修复方法
  6. 解决Windows客户端访问vsftpd服务器中文乱码问题
  7. sim7020c功耗_SIM7020C物联网NB-IOT模块 simcom代理
  8. 考研c 语言程序设计题库,温州大学c语言程序设计考研复试核心题库(23页)-原创力文档...
  9. oralce中的dual详解
  10. 【luogu T34117 打油门】 题解
  11. 项目开发中常用的精华Python库介绍与整理
  12. 全球与中国消防系统市场现状及未来发展趋势
  13. echarts折线图鼠标移入页面出现抖动
  14. Intel Composer XE
  15. GEE实战 | 各种指数分析(植被、水体、建筑)
  16. 人工智能里你不知道的那些事!所有人都感兴趣的文章
  17. 使用python批量将word转为pdf
  18. 深圳云计算培训:Linux学习思路(一)
  19. Win10 + VS2013 配置OpenBLAS
  20. 【对讲机的那点事】搭建无线电天馈系统如何使用热塑管和制作跳线?

热门文章

  1. 大数据之道 HMM系列
  2. 计算机课程意见建议,对计算机课程的建议论文
  3. VM ware下载教程
  4. L44. 通配符匹配
  5. 土地资源管理就业怎么这么难_我所理解的土地资源管理专业
  6. HDU - 3966 树链刨分
  7. jvm:ObjectMonitor源码
  8. 关于计算机学院 公众号的名字,最新微信公众号名字大全
  9. c语言中合法整型常量负号,C语言中整型常量的表示方法
  10. 智齿科技宣布C轮获用友领投2.1亿战略投资