JCEF 如何修改右键菜单项(JCEF在右键菜单中添加开发者选项-show dev tools)

需求:

在界面的右键事件中添加一个打开开发者选项的菜单(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();
    }
}

时间: 2024-10-14 11:42:38

JCEF 如何修改右键菜单项(JCEF在右键菜单中添加开发者选项-show dev tools)的相关文章

通过VBA在Excel中添加菜单和菜单项按钮(Excel启动时候添加)

将以下代码保存到.xlam或.xla(Excel97-2003)文件. 在ThisWorkBook对象中,添加Workbook_Open事件,调用启动菜单过程. Private Sub Workbook_Open() Call MenuSetup(True) End Sub '----------------------------------------------- '在Excel中添加菜单和菜单项按钮(Excel启动时候添加) '------------------------------

step4--->往工程中添加Spring框架---->修改maven的配置文件pom.xml,向工程中添加spring框架的某些模块

1.本文内容: 本文介绍使用maven向自己的项目中添加各种框架的方法,即如何配置maven的pom.xml来让maven帮助管理这些框架(包括Spring.SpringMVC.hibernate框架等等). 2.使用maven向自己的工程中添加框架: 2.1概述 若想使用maven向自己的工程中添加三方框架(如Spring.SpringMVC等),需要先确保你的工程是maven工程,如果你还不知道该如何在myeclipse中建立一个maven web project,请参考相关教程. 2.2使

001在系统菜单中添加菜单项

技术要点: 为了操作系统菜单,先要获取系统菜单指针,可以通过GetSystemMenu函数实现,然后利用菜单指针添加一个菜单项,最后在对话框OnSysCommand方法中处理菜单项的命令. GetSystemMenu方法用于获取一个系统菜单的指针,语法如下: CMenu* GetSystemMenu(BOOL bRect); bRect:FALSE时,该方法返回当前正在使用的系统菜单:TRUE时,该方法将重新设置系统菜单到默认状态,并且方法返回值不可用. 实现过程: (1)新建一个基于对话框的应

解决MPLAB X IDE菜单项重叠在一起,右键选项重叠在一起

一直在用MPLAB X IDE编写PIC的C程序,五一出去玩回来发现MPLAB的菜单项都重叠在一起,一个也看不清. MPLAB重装了好几遍也没用,于是开始排查五一之前对电脑都做了哪些修改. 通过观察发现文字重合的部分有一定的特点,主要是菜单项.右键选项.文件打开项,于是突然想起走之前一个同学给我说雅痞字体不错(可以吸引妹子),于是就安装了这个字体.而在设置该字体的时候也是一项项的设置(包括菜单.标题.消息框等).因此马上到windows外观里改变了菜单的字体为宋体,效果如下: 终于找到原因啦!

添加系统右键菜单项 管理员取得所有权(W)(带盾牌)

@color 0A @title 添加系统右键菜单项 管理员取得所有权(^&W)(带盾牌) by wjshan0808 @echo off echo * >nul reg add HKCR\*\shell\runas /ve /d "管理员取得所有权(&W)" /f reg add HKCR\*\shell\runas /v Icon /t reg_expand_sz /d "%SystemRoot%\system32\user32.dll,6"

Office 2016 - 下载、安装、激活后,右键新建菜单中,出现 Micorosoft Excel 97-2003 工作表,而不是 Micorosoft Excel 工作表、以及对新建菜单项位置做调整

安装激活 Office 2016 后,新建菜单项如下: 首先,需要做的是把右键新建菜单项中的 Micorosoft Excel 09-2003 工作表去除(保存格式是 .xls),替换为 Micorosoft Excel 工作表(Excel 2016 的默认格式 .xlsx) 其次,对新建菜单项的排列顺序做调整,额,把 Micorosoft Excel 工作表 移至 Micorosoft Word 文档下面. 调整后样式:

grub legacy练习 之 单用户模式修改root账户口令,并为grub菜单项设置密码保护功能

通过进入单用户模式来修改root账户口令,并为grub菜单项设置密码保护功能: 直接进入系统后,输入e, 进入此界面后,输入e 然后输入single: 回车键输入之后,在摁b键启动: 此时不用输密码:直接可以更改root密码: 用grub-md5-crypt,加密一段密码,我加密的是123456:然后写入到/etc/grub.conf 发现开机界面,想进入单用户模式就必须输入p键才能进入: 输入密码123456后,才可以进入单用户模式: 原文地址:http://blog.51cto.com/li

每日学习心得:SharePoint 2013 自定义列表项添加Callout菜单项、文档关注、SharePoint服务端对象模型查询

前言: 前一段时间一直都比较忙,没有什么时间进行总结,刚好节前项目上线,同时趁着放假可以好好的对之前遇到的一些问题进行总结.主要内容有使用SharePoint服务端对象模型进行查询.为SharePoint 自定义列表项添加callout菜单.希望能够给大家带来一些帮助. 1.  在aspx页引用可视化Web部件 有时候会需要在页面中引用项目中创建的可视化Web部件,具体步骤有以下这几步: 1) 在aspx页面顶部注册该可视化Web部件 示例如下: <%@ Register Tagprefix=&qu

TortoiseSVN菜单项功能说明

TortoiseSVN是windows下其中一个非常优秀的SVN客户端工具.通过使用它,我们可以可视化的管理我们的版本库.不过由于它只是一个客户端,所以它不能对版本库进行权限管理. TortoiseSVN不是一个独立的窗口程序,而是集成在windows右键菜单中,使用起来比较方便. TortoiseSVN每个菜单项都表示什么意思 01.SVN Checkout(SVN取出)点击SVN Checkout,弹出检出提示框,在URL of repository输入框中输入服务器仓库地址,在Checko