JCEF 如何修改右键菜单项(JCEF在右键菜单中添加开发者选项-show dev tools)
2016-10-21 08:47
495 查看
需求:
在界面的右键事件中添加一个打开开发者选项的菜单(Show Dev Tools)
所以我们可以看到的是在界面上右键,会有默认的一些菜单项(前进,后退,打印,查看源码),而这些功能并不一定是我们需要的,所以我们首先要做的就是去除这些选项,参考:java cef3 如何禁止右键菜单项
同理,我们只需要在CefContextMenuHandler接口的实现类中去定制我们的菜单项即可,代码如下:
在onBeforeContextMenu中先清除默认的菜单项,然后绑定开发者选项,这里需要注意的是,MenuId.MENU_ID_SHOW_DEV_TOOLS这个在MenuId中是不存在的,需要我们手动添加进去
接着我们在onContextMenuCommand方法中绑定菜单事件,然后重启服务器,在界面上右键即可看到开发者选项,点击打开开发者选项对话框
附DevToolsDialog的实现:
View Code
在界面的右键事件中添加一个打开开发者选项的菜单(Show Dev Tools)
所以我们可以看到的是在界面上右键,会有默认的一些菜单项(前进,后退,打印,查看源码),而这些功能并不一定是我们需要的,所以我们首先要做的就是去除这些选项,参考:java cef3 如何禁止右键菜单项
同理,我们只需要在CefContextMenuHandler接口的实现类中去定制我们的菜单项即可,代码如下:
public class ContextMenuHandler implements CefContextMenuHandler { private final Frame owner; public ContextMenuHandler(Frame owner) { this.owner = owner; } @Override public void onBeforeContextMenu(CefBrowser browser, CefContextMenuParams params, CefMenuModel model) { model.clear();//清除默认的菜单项 model.addItem(MenuId.MENU_ID_SHOW_DEV_TOOLS, "开发者选项"); } @Override public boolean onContextMenuCommand(CefBrowser browser, CefContextMenuParams params, int commandId, int eventFlags) { switch (commandId) { case MenuId.MENU_ID_SHOW_DEV_TOOLS: { // 打开开发者选项 DevToolsDialog devToolsDlg = new DevToolsDialog(owner, "开发者选项", browser); devToolsDlg.setVisible(true); return true; } default: { return false; } } } @Override public void onContextMenuDismissed(CefBrowser browser) { } }
在onBeforeContextMenu中先清除默认的菜单项,然后绑定开发者选项,这里需要注意的是,MenuId.MENU_ID_SHOW_DEV_TOOLS这个在MenuId中是不存在的,需要我们手动添加进去
接着我们在onContextMenuCommand方法中绑定菜单事件,然后重启服务器,在界面上右键即可看到开发者选项,点击打开开发者选项对话框
附DevToolsDialog的实现:
public class DevToolsDialog extends JDialog { private static final long serialVersionUID = 6859581641415822180L; private final CefBrowser devTools_; public DevToolsDialog(Frame owner, String title, CefBrowser browser) { this(owner, title, browser, null); } public DevToolsDialog(Frame owner, String title, CefBrowser browser, Point inspectAt) { super(owner, title, false); setLayout(new BorderLayout()); setSize(800, 600); setLocation(owner.getLocation().x + 20, owner.getLocation().y + 20); devTools_ = browser.getDevTools(inspectAt); add(devTools_.getUIComponent()); addComponentListener(new ComponentAdapter() { @Override public void componentHidden(ComponentEvent e) { dispose(); } }); } @Override public void dispose() { devTools_.close(); super.dispose(); } }
View Code
相关文章推荐
- JCEF 如何修改右键菜单项(JCEF在右键菜单中添加开发者选项-show dev tools)
- MFC中的CMenu---如何动态添加菜单/菜单项、子菜单、右键菜单 .
- MFC中的CMenu---如何动态添加菜单/菜单项、子菜单、右键菜单
- 如何在MFC中动态添加菜单/菜单项、子菜单、右键菜单
- 如何在IE右键菜单中添加菜单项以及如何添加IE任务栏按钮
- MFC中的CMenu---如何动态添加菜单/菜单项、子菜单、右键菜单
- 修改注册表添加鼠标右键菜单选项
- 如何在IE右键菜单中添加菜单项以及如何添加IE任务栏按
- 如何动态添加菜单/菜单项、子菜单、右键菜单
- 如何在IE右键菜单中添加选项
- 如何动态添加菜单/菜单项、子菜单、右键菜单
- 如何动态添加菜单/菜单项、子菜单、右键菜单
- MFC中的CMenu---如何动态添加菜单/菜单项、子菜单、右键菜单
- 如何在IE右键菜单中添加菜单项(转)
- 如何动态添加菜单/菜单项、子菜单、右键菜单
- 如何在IE右键菜单中中添加自已的选项
- 如何在IE右键菜单中添加菜单项
- 如何在IE右键菜单中添加菜单项
- MFC中的CMenu---如何动态添加菜单/菜单项、子菜单、右键菜单
- 如何在GNOME的鼠标右键菜单里添加启动终端的选项