如何在SWT菜单项文本中保留@字符

问题描述 投票:0回答:1

我使用 SWT 和 JFace(在 Windows 上)构建了一个 Java 应用程序。在这里,我想将电子邮件地址作为文本放入菜单项中,并使用以下操作类:

private class MyAction extends Action {
    public MyAction() {
        super("[email protected]");
    }

    @Override
    public void run() {
        // code to execute
    }
}

当然:

protected MenuManager createMenuManager() {
    MenuManager menuBar = new MenuManager();
    MenuManager myMenu = new MenuManager("Menu");
    myMenu.add(new MyAction());
    menuBar.add(myMenu);
    return menuBar;
}

让我有点困惑的是,当显示菜单时,“at”字符丢失了,取而代之的是一个空格。

我可以以某种方式保留@字符吗?

我已经尝试过在 @ 字符前面放一个双反斜杠,或者用 Unicode 符号 \u0040 替换 @ 字符 - 这两种方法都没有帮助。

java swt jface
1个回答
0
投票

这似乎是

Action
代码中的“加速器”文本处理,如果没有选项卡,则将选项卡或 @ 后面的任何内容转换为菜单的单独部分。

由于代码在查找 @ 之前首先查找选项卡,使用:

super("[email protected]\t");  // Added tab at end

似乎有效。

或者仅使用

Menu
MenuItem
和侦听器而不是
MenuManager
也可以。

© www.soinside.com 2019 - 2024. All rights reserved.