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

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

java 复制代码
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"后,弹出窗口,窗口可以定义如下:

java 复制代码
    //introduction窗口
    private void showIntroWindow() {

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

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

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

相关推荐
csdn2015_6 分钟前
java 把对象转化为json字符串
java·前端·json
想带你从多云到转晴7 分钟前
03、数据结构与算法--单向链表
java·数据结构·算法
无籽西瓜a9 分钟前
【西瓜带你学设计模式 | 第七期 - 适配器模式】适配器模式 —— 类适配器与对象适配器实现、优缺点与适用场景
java·后端·设计模式·软件工程·适配器模式
Oliver_LaVine15 分钟前
idea启动后端项目-控制台中文乱码处理
java·ide
Flittly15 分钟前
【SpringAIAlibaba新手村系列】(6)PromptTemplate 提示词模板与变量替换
java·spring boot·agent
yaaakaaang23 分钟前
3.springboot,用eclipse轻松创建~
java·spring boot·eclipse
计算机学姐26 分钟前
基于SpringBoot的新能源充电桩管理系统
java·vue.js·spring boot·后端·mysql·spring·java-ee
木井巳27 分钟前
【笔试强训】Day1
java·算法
风萧萧199927 分钟前
Milvus Java 快速入门
java·开发语言·milvus
leiming628 分钟前
巧用 FreeRTOS 任务通知作“邮箱”:NeoPixel 灯环控制实战
java·前端·算法