JFace MessageDialog,消息字符串包含'&'烧焦; '&安培;'没有显示

时间:2013-06-06 15:30:04

标签: jface ampersand messagedialog

我正在尝试使用JFace Messagedialog.openInformation对话框,我的消息字符串包含&符号&'字符。打开对话框时不显示&符号。通过反复试验,我发现如果我把&符号加倍到&&在字符串中,它将显示。

逃离&在字符串中没有效果。

显然,如果我将字符串写入system.out,情况并非如此;所以这不是String本身的问题。

我正在寻找一些关于这种情况发生的文件。

2 个答案:

答案 0 :(得分:1)

您可以使用LegacyActionTools.escapeMnemonics(message)来摆脱应该显示的情况下的助记符。

答案 1 :(得分:0)

&安培;用于识别控件的助记符加速器...因此,传递给MessageDialog.openInformation方法的文本可能被相同的逻辑解析。

我还没有深入挖掘SWT代码,但我无法找到一个特定的地方来处理'&'字符,所以它可能发生在操作系统级别。