2017-09-22 7 views
1

JFace 메뉴 관리자를 사용하고 있습니다. 일부 메뉴 항목에는 @ 개의 문자가 포함되어 있습니다. 예를 들어 이메일을 메뉴 항목 목록으로 표시하는 경우JFace 메뉴 레이블에서 '@'문자를 이스케이프하는 방법

이렇게하면 메뉴에 @ 문자가있는 것처럼 보이지 않지만 아래 그림과 같이 공백이 생깁니다.

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

내 질문은, 어떻게 우리는 @ 문자를 탈출 않습니다되어 다음과 같이

코드 메뉴 항목을 만들 수있다?

답변

0

보통, 특수 문자는 중복을 통해 탈출 할 수 있습니다. 그러나이 경우 JFace에 버그 (또는 기능)가있는 것으로 보입니다.

의견에서 제안 된대로 유일한 해결 방법은 메뉴 레이블 끝에 @ 문자를 추가하는 것입니다. 이 트릭을 적용하면 메뉴 레이블이 올바르게 표시됩니다. 일부 추가 공간 만 레이블 오른쪽에 추가됩니다.

+0

'@'두 글자를 쓸 때 SWT는 첫 번째'@'char을 표시하지만 그 뒤에 공백을 추가합니다. 예를 들어,'foo @@ bar.org'를 지정할 때'foo @ bar.org'로 표시됩니다. – singularity

+0

또 다른 흥미있는 발견입니다. '@'가있는 항목의 경우, 다른'@'접미사 만 붙였습니다. 이제 메뉴 항목이 그대로 표시됩니다 (사용자가 볼 수없는 끝에 공백이있을 수 있음). 그래서'@'가 하나만 있다면, 공백으로 표시됩니다. 2 개의'@ '가있는 경우, 최초의'@'를 그대로 나타내, 2 번째의 것을 공백으로 변환합니다. – singularity

+1

당신은 macOS를 사용하고있는 것처럼 보입니다. 메뉴 항목을 만드는 데 사용하는 코드를 게시 할 수 있습니까? –