2017-09-22 5 views
1

Wir verwenden den JFace-Menü-Manager. Einige unserer Menüpunkte enthalten @ Zeichen. Zum Beispiel, wenn wir E-Mails als eine Liste von Menüpunkten anzeigen.So entziehen Sie ein @ -Zeichen in den JFace-Menübezeichnungen

Wenn wir das tun, zeigt das Menü nicht das @ Zeichen wie es ist, sondern führt ein Leerzeichen ein, wie unten gezeigt.

Der Code, um die Menüeinträge zu erstellen, ist wie folgt:

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

Meine Frage ist, wie kann entkommen wir die @ char?

Antwort

0

Normalerweise können Sonderzeichen sie durch Vervielfältigung entwertet werden. In diesem Fall scheint jedoch ein Bug (oder Feature?) In JFace dies zu verhindern.

Wie in den Kommentaren vorgeschlagen, scheint die einzige Problemumgehung zu sein, ein @ Zeichen am Ende der Menübezeichnung anzufügen. Wenn dieser Trick angewendet wird, wird die Menübezeichnung korrekt angezeigt. Nur etwas mehr Platz wird rechts neben dem Etikett hinzugefügt.

+0

Wenn ich '@' sie verdopple, zeigt SWT zuerst '@' char, aber fügt Raum danach hinzu. Zum Beispiel, wenn ich 'foo @@ bar.org' spezifiziere, wird es als' foo @ bar.org' angezeigt. – singularity

+0

Ein weiterer interessanter Fund. Für die Items, die '@' haben, habe ich einfach ein anderes '@' angehängt. Jetzt werden die Menüpunkte so angezeigt, wie sie sind (möglicherweise mit Leerzeichen am Ende, das der Benutzer nicht sehen kann). Wenn also ein einzelnes @ vorhanden ist, wird es als Leerzeichen angezeigt. Wenn es zwei '@' s gibt, zeigt es zuerst '@' wie es ist und wandelt das zweite in Leerzeichen um. – singularity

+1

Sie scheinen Mac OS zu verwenden, könnten Sie den Code, den Sie zum Erstellen des Menüelements verwenden, veröffentlichen? –

Verwandte Themen