zoukankan      html  css  js  c++  java
  • jxbrowser 实现自定义右键菜单

    https://blog.csdn.net/shuaizai88/article/details/73743691

     public static void main(String[] args) {
            JPopupMenu.setDefaultLightWeightPopupEnabled(false);
     
            Browser browser = new Browser();
            BrowserView view = new BrowserView(browser);
     
            JFrame frame = new JFrame();
            frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
            frame.add(view, BorderLayout.CENTER);
            frame.setSize(700, 500);
            frame.setLocationRelativeTo(null);
            frame.setVisible(true);
     
            browser.setContextMenuHandler(new MyContextMenuHandler(view));
            browser.loadURL("http://baidu.com");
        }
     
        private static class MyContextMenuHandler implements ContextMenuHandler {
     
            private final JComponent component;
     
            private MyContextMenuHandler(JComponent parentComponent) {
                this.component = parentComponent;
            }
     
            public void showContextMenu(final ContextMenuParams params) {
                final JPopupMenu popupMenu = new JPopupMenu();
                if (!params.getLinkText().isEmpty()) {
                    popupMenu.add(createMenuItem("打开新窗口", new Runnable() {
                        public void run() {
                            String linkURL = params.getLinkURL();
                            System.out.println("linkURL = " + linkURL);
                        }
                    }));
                }
     
                final Browser browser = params.getBrowser();
                popupMenu.add(createMenuItem("刷新网页", new Runnable() {
                    public void run() {
                        browser.reload();
                    }
                }));
     
                final Point location = params.getLocation();
                SwingUtilities.invokeLater(new Runnable() {
                    public void run() {
                        popupMenu.show(component, location.x, location.y);
                    }
                });
            }
     
            private static JMenuItem createMenuItem(String title, final Runnable action) {
                JMenuItem reloadMenuItem = new JMenuItem(title);
                reloadMenuItem.addActionListener(new ActionListener() {
                    public void actionPerformed(ActionEvent e) {
                        action.run();
                    }
                });
                return reloadMenuItem;
            }
        }

  • 相关阅读:
    数据库目录
    设计模式
    mysql的索引结构
    ElasticSearch的基本操作
    转:基于Hadoop 的分布式网络爬虫技术学习笔记
    爬虫 es 搜索引擎
    vue+django2.0.2-rest-framework 生鲜项目
    fiddler抓包时显示Tunnel to......443
    安装 Win10 + Ubuntu 双系统过程
    ROS 订阅者的创建及使用
  • 原文地址:https://www.cnblogs.com/tc310/p/10795600.html
Copyright © 2011-2022 走看看