jxbrowser 實現自定義右鍵選單 jxbrowser破解版請聯絡作者
阿新 • • 發佈:2018-11-10
QQ 921888199
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; } }