2013-06-06 3 views
0

JFace Messagedialog.openInformation 대화 상자를 사용하려고하는데 내 메시지 문자열에 앰퍼샌드 '&'문자가 포함되어 있습니다. 대화 상자를 열 때 앰퍼샌드가 표시되지 않습니다. 시행 착오를 통해 문자열에서 & &의 앰퍼샌드를 두 배로하면 표시된다는 것을 알게되었습니다.JFace MessageDialog, 메시지 문자열에 '&'char가 포함되어 있습니다. '&'not displayed

문자열 내에서 &을 이스케이프해도 아무 효과가 없습니다.

분명히 system.out에 문자열을 쓰는 경우에는 그렇지 않습니다. 그래서 String 자체에는 문제가되지 않습니다.

이 문제가 발생하는 이유에 대한 몇 가지 문서를 찾고 있습니다.

답변

0

&은 컨트롤에 대한 니모닉 액셀러레이터를 식별하는 데 사용되므로 ... MessageDialog.openInformation 메서드에 전달할 텍스트가 동일한 로직에 의해 구문 분석 될 가능성이 있습니다.

SWT 코드를 많이 파고 들지는 않았지만 '&'문자를 처리하는 특정 위치를 찾을 수 없어 OS 수준에서 발생할 수 있습니다.

0

니모닉을 표시해야하는 상황에서 LegacyActionTools.escapeMnemonics (메시지)를 사용하여 니모닉을 이스케이프 처리 할 수 ​​있습니다.