2017-09-22 76 views
1

我們正在使用JFace菜單管理器。我們的一些菜單項包含@字符。例如,如果我們將電子郵件顯示爲菜單項列表。如何在JFace菜單標籤中跳出'@'字符

當我們這樣做時,菜單並不顯示@字符,而是引入瞭如下所示的空格。

代碼來創建菜單項如下:

IMenuManager mgr = ... 
mgr.add(new Action("[email protected]") { 
    @Override 
    public void run() { 
    // Action run 
    } 
}); 

我的問題是,我們如何逃脫@字符?

回答

0

通常情況下,特殊字符可通過重複進行轉義它們。然而,在這種情況下,JFace似乎有一個錯誤(或特徵?)阻止了這一點。

正如評論中所建議的,唯一的解決方法似乎是在菜單標籤的末尾附加一個@字符。應用此技巧後,菜單標籤正確顯示。只有一些額外的空間被添加到標籤的右側。

+0

當我將@加倍時,SWT顯示第一個'@'字符,但是之後會增加空格。例如,當我指定'foo @@ bar.org'時,它顯示爲'foo @ bar.org' – singularity

+0

另一個有趣的發現。對於具有'@'的項目,我只是後綴另一個'@'。現在,菜單項按原樣顯示(可能在用戶看不到的末端有空格)。所以如果只有一個'@',它就會顯示爲空格。如果有兩個「@」,它將首先顯示「@」,並將第二個轉換爲空格。 – singularity

+1

您似乎在使用macOS,您能否發佈用於創建菜單項的代碼? –