Swing-右键菜单
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-右键菜单相关推荐
- java swing 右键_java swing制作右键菜单
java swing中如何实现右键菜单呢? 直接上代码: /*** java * 设置弹出菜单 * @param qrResultLabel */ private void setPopupMe ...
- Java Swing中的下拉式菜单(menu)、弹出式菜单(JPopupMenu)、选项卡窗体(JTabbedPane),TextArea右键菜单 组件使用案例
文章目录 1.. Java弹出菜单,为JTextArea添加了右键弹出式菜单 2.:下拉式菜单的创建步骤: 3:弹出式菜单的创建步骤: 4:选项卡窗体: 菜单是GUI中最常用的组件,菜单不是Compo ...
- java 右键菜单_界面操作--添加右键菜单
[java]代码库package 添加右键菜单; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; impor ...
- JS简单实现自定义右键菜单
今天来讲一个关于右键菜单的小demo,抛砖引玉. 首先,我们要用css和html做一个自定义右键菜单. <!--自定义右键菜单html代码--> <div id="menu ...
- vue右键自定义菜单_一款小巧的开源右键菜单管理软件
要说右键管理软件,果核上面目前收集了几款,例如年久失修的右键管家. 虽然很多年没有更新了,但是软件的功能却正常,日常删除多余的右键菜单没问题. 另外,就是火绒家的右键管家,基本功能也够用 不过嘛,今天 ...
- 安装ATi显卡驱动后增加的鼠标右键菜单的清理
一般最直接的方法是: 一般位于注册表的: 删除注册表HKEY_CLASSES_ROOT\Directory \Background\shellex\ContextMenuHandlers\ACE下 a ...
- 【Qt】菜单栏、工具栏、状态栏、右键菜单的实现
在QMainWidget基础上实现菜单栏.工具栏.状态栏.右键菜单. 头文件: #ifndef GWDEMO_H #define GWDEMO_H#include <QMainWindow> ...
- mac系统添加VSCode到右键菜单(转)
转自:https://www.liaoxuefeng.com/wiki/001434446689867b27157e896e74d51a89c25cc8b43bdb3000/0014709690772 ...
- Cygwin-添加到右键菜单脚本--一键安装、卸载
平时习惯用一些linux命令来完成工作,在Windows上有cygwin和gitbash两个选择.这两个我都装了. 相对来说cygwin支持的功能更多一些,但是它没有默认绑定到右键菜单.为此,我想到用 ...
- 自定义html页面鼠标右键,javascript鼠标右键菜单自定义效果
本文实例讲解了javascript鼠标右键菜单的实现方法,分享给大家供大家参考,具体内容如下 效果图: 具体代码: #menu{ border:solid 1px gray; width:100px; ...
最新文章
- 来自一年的程序员的困惑
- andoid x项目的优化 1
- getopt的用法与optarg
- java 生产者消费者_基于JAVA的生产者消费者问题
- Linux恢复win分区,找到了linux分区顺序错乱修复方法
- 解决Windows客户端访问vsftpd服务器中文乱码问题
- sim7020c功耗_SIM7020C物联网NB-IOT模块 simcom代理
- 考研c 语言程序设计题库,温州大学c语言程序设计考研复试核心题库(23页)-原创力文档...
- oralce中的dual详解
- 【luogu T34117 打油门】 题解
- 项目开发中常用的精华Python库介绍与整理
- 全球与中国消防系统市场现状及未来发展趋势
- echarts折线图鼠标移入页面出现抖动
- Intel Composer XE
- GEE实战 | 各种指数分析(植被、水体、建筑)
- 人工智能里你不知道的那些事!所有人都感兴趣的文章
- 使用python批量将word转为pdf
- 深圳云计算培训:Linux学习思路(一)
- Win10 + VS2013 配置OpenBLAS
- 【对讲机的那点事】搭建无线电天馈系统如何使用热塑管和制作跳线?