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;
}
}

最新文章

  1. 语义化HTML:p、h1-6、q、blockquote、hr、address、code、pre、var、cite、dfn和samp
  2. Selenium 获取隐藏元素的内容
  3. 了解Json
  4. mybatis分页插件PageHelper的使用(转)
  5. VALGRIND
  6. jQuery1.9.1--attr,prop与val方法源码分析
  7. php 调试工具及学习PHP垃圾回收机制了解引用计数器的概念
  8. nova 配置文件
  9. JavaScript面向对象深入理解原型
  10. Scrapy爬虫框架第三讲(linux环境)
  11. 根据http协议下载文件保存到相应的文件下
  12. 异常值处理outlier
  13. 如何计算UDP/TCP检验和checksum
  14. Gym - 100989H
  15. Xcode10 library not found for -lstdc++ 找不到问题
  16. VLC1.2 播放视频迟滞卡
  17. Python3之turtle模块的使用
  18. ANT配合FIS执行前端打包任务
  19. Python对文件和文件路径的管理
  20. PMP备考指南之第一章:引论

热门文章

  1. [LeetCode]1089. Duplicate Zeros
  2. SpringBoot static修饰的字段/方法如何获取application.yml配置
  3. Python中文转为拼音
  4. 从n个数里面找最大的两个数理论最少需要比较
  5. PAT1005 继续(3n+1)猜想
  6. 关于TAILQ链表节点删除问题
  7. monkeyrunner录制和回放功能
  8. 部署nginx脚本
  9. BZOJ5056 OI游戏[最短路树]
  10. (web)个人项目(挖宝网)