当前位置: 首页 > article >正文

Java 实现鼠标单击右键弹出菜单项

在界面的任意地方鼠标右键点击出现一个菜单项 "Intro",并且点击该项后弹出一个新窗口。

public class frame extends JFrame   {

    public frame() {
        setTitle("title");
        setSize(500, 500);

       // JPopupMenu 用于创建和显示弹出菜单
        JPopupMenu popupMenu = new JPopupMenu();
        
        // JMenuItem 用于表示菜单中的一个操作选项,文本设置为"Intro"
        JMenuItem introItem = new JMenuItem("Intro");
        
        // 为JMenuItem 添加监听器
        introItem.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                showIntroWindow();
            }
        });
        
        // 将菜单项添加到弹出菜单中
        popupMenu.add(introItem);
        
        // 右键点击事件
        addMouseListener(new MouseAdapter() {
            @Override
            public void mousePressed(MouseEvent e) {
                showPopupMenu(e);
            }

            @Override
            public void mouseReleased(MouseEvent e) {
                showPopupMenu(e);
            }

            private void showPopupMenu(MouseEvent e) {
                if (e.isPopupTrigger()) { // 检查是否是右键点击,在点击位置显示弹出菜单
                    popupMenu.show(e.getComponent(), e.getX(), e.getY()); 
                }
            }
//popupMenu是一个JPopupMenu对象
//e.getComponent()获取事件源组件,e.getX()和e.getY()获取鼠标点击的坐标。

        });
}}

点击菜单“Intro”后,弹出窗口,窗口可以定义如下:

    //introduction窗口
    private void showIntroWindow() {

        JFrame newFrame = new JFrame("introduction");
        newFrame.setSize(300, 300);
        //other
    }

// JFrame是Swing中用于创建窗口的类,作为顶级窗口容器,其中通常包含其他 UI 组件。

Swing是一个图形用户界面(Graphical User Interface, GUI)开发工具包。 


http://www.kler.cn/a/394884.html

相关文章:

  • 【人工智能】使用Python构建推荐系统:从协同过滤到深度学习
  • 亚信安全举办“判大势 悟思想 强实践”主题党日活动
  • Android U 多任务启动分屏——system_server流程(更新中)
  • AtCoder Beginner Contest 385(A~F)题解
  • 广州大学计算机组成原理课程设计
  • 【论文复现】农作物病害分类(Web端实现)
  • 【vue3中el-table表格高度自适应】
  • 探索 HTML 和 CSS 实现的 3D旋转相册
  • SQL面试题——蚂蚁SQL面试题 连续3天减少碳排放量不低于100的用户
  • c++写一个死锁并且自己解锁
  • 前端搭建低代码平台,微前端如何选型?
  • Android开发|关于LiveData、ViewModel、DataBinding理解和使用
  • UI架构解说
  • 智能量化交易的多样化策略与风险控制:中阳模型的应用与发展
  • 项目中用户数据获取遇到bug
  • 计算机课程管理:Spring Boot与工程认证的协同创新
  • Docker部署青龙面板,实现京东自动签到刷京东,提供脚本
  • 如何利用静态住宅IP提升TikTok营销效果:应对平台限制与账号安全的新利器
  • 理解HTTP中的Cookie与Session:机制、安全性与报头响应
  • 华为路由策略配置
  • SSL 证书申请以及配置流程
  • MySQL中,使用XtraBackup进行备份锁
  • Matlab2022b安装MinGW64
  • Windows仿macOS?看这一篇就够了
  • go语言 分布式一致
  • 知识库管理系统:企业数字化转型的加速器