swing 添加右键菜单
  mJ4yWAKdRNcf 2023年11月02日 31 0


import javax.swing.*;

/**
 * 右键菜单
 */
public class RightClickMenuExample {
    public static void main(String[] args) {
        JFrame frame = new JFrame("Right Click Menu Example");
        JPanel panel = new JPanel();

        // 创建右键菜单
        JPopupMenu popupMenu = new JPopupMenu();
        JMenuItem menuItem1 = new JMenuItem("菜单项1");
        menuItem1.addActionListener(e -> {
            System.out.println("e = " + e);
        });
        JMenuItem menuItem2 = new JMenuItem("菜单项2");
        JMenuItem menuItem3 = new JMenuItem("菜单项3");
        popupMenu.add(menuItem1);
        popupMenu.add(menuItem2);
        popupMenu.add(menuItem3);

        // 添加鼠标右键监听器
//        panel.addMouseListener(new MouseAdapter() {
//            @Override
//            public void mouseReleased(MouseEvent e) {
//                if (e.isPopupTrigger()) {
//                    popupMenu.show(e.getComponent(), e.getX(), e.getY());
//                }
//            }
//        });
        panel.setComponentPopupMenu(popupMenu);
        /*
        panel.setComponentPopupMenu(new JPopupMenus().addMenu("菜单项2", new JPopupMenus.JPopupMenusClick() {
            @Override
            public void click(String str) {
                System.out.println("str = " + str);
            }
        }).addMenu("菜单项22", new JPopupMenus.JPopupMenusClick() {
            @Override
            public void click(String str) {
                System.out.println("str = " + str);
            }
        }));*/

        frame.getContentPane().add(panel);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(300, 200);
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);
    }
}

工具类

import javax.swing.*;

/**
 * 添加右键菜单
 * <code>JPanel panel = new JPanel();
 * *  panel.setComponentPopupMenu(new JPopupMenus().addMenu("菜单项2", new JPopupMenus.JPopupMenusClick() {
 * *             @Override
 * *             public void click(String str) {
 * *                 System.out.println("str = " + str);
 * *             }
 * *         }).addMenu("菜单项22", new JPopupMenus.JPopupMenusClick() {
 * *             @Override
 * *             public void click(String str) {
 * *                 System.out.println("str = " + str);
 * *             }
 * *         }));
 * </code>
 */
public class JPopupMenus extends JPopupMenu {

    public JPopupMenus() {
    }

    public JPopupMenus(String label) {
        super(label);
    }

    public JPopupMenus addMenu(String menuItemStr, JPopupMenusClick jPopupMenusClick) {
        JMenuItem menuItem1 = new JMenuItem(menuItemStr);
        menuItem1.addActionListener(e -> {
            jPopupMenusClick.click(menuItemStr);
        });
        add(menuItem1);
        return this;
    }

    public interface JPopupMenusClick {
        void click(String str);
    }
}
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  anLrwkgbyYZS   2023年12月30日   14   0   0 ideciciMaxideMax
mJ4yWAKdRNcf