如何在 JFace 菜单标签中转义 '@' 字符

How to escape '@' char in JFace menu labels

我们正在使用 JFace 菜单管理器。我们的一些菜单项包含 @ 个字符。例如,如果我们将电子邮件显示为菜单项列表。

当我们这样做时,菜单不会按原样显示 @ 字符,而是会引入一个 space,如下所示。

创建菜单项的代码如下:

IMenuManager mgr = ... 
mgr.add( new Action( "dataloader.dev@datasert.com" ) { 
  @Override 
  public void run() { 
    // Action run 
  } 
} );

我的问题是,我们如何转义 @ 字符?

通常,特殊字符可以通过复制来转义。然而,在这种情况下,JFace 中似乎有一个错误(或功能?)阻止了这一点。

正如评论中所建议的那样,唯一的解决方法似乎是在菜单标签的末尾附加一个 @ 字符。应用此技巧后,菜单标签将正确显示。仅在标签右侧添加了一些额外的space。