JTextArea 不显示本机字体表情符号

Jac*_*ain 3 java macos swing

当我使用标准输出打印包含表情符号的文本时,会显示表情符号(图 1)。但是当我在 JTextArea 中显示文本时,表情符号显示为未识别的字符 (pic2)。如何解决这个问题?

我在 OS X 上使用与其他编辑器相同的 JTextArea 字体。

编辑:我不想放置预定义的图像表情符号。相反,我想显示带有字体的本机表情符号。因此,如果我在任何文本编辑器中书写 :),我会得到一个表情符号,因为字体已经有了这个表情符号。我希望它在 JTextArea 中工作。

在此处输入图片说明

在此处输入图片说明

Sho*_*orn 5

我假设您渲染的字符串只是纯文本,其中包含来自杂项符号范围或某些类似块的Unicode 图释字符- 例如,皱眉的脸是U+2639?如果情况并非如此,您可以忽略此答案的其余部分(并考虑更新您的问题以指定您做什么)。

您已经说过“它适用于标准输出,但不适用于 JTextArea” - 但在我看来,标准输出控制台视图中使用的字体与 JTextArea 中使用的字体不同(查看“i” “Maggie”中的字符作为字体如何不同的示例)。

看起来好像用于在控制台窗口中呈现字符的字体“知道”如何绘制 U+2639,但 JTextArea 中使用的字体不“知道”如何呈现字符。您看到的“不明字符”通俗地称为“豆腐”:每当字体不知道如何绘制字符时,它就会绘制“白色方块”字符。尝试 API canDisplay()方法以确定特定字体是否“知道”如何显示特定字符​​。

您在 JTextArea 上究竟设置了什么字体以及如何设置?
考虑发布SSCCE - 我目前确实可以访问 OS X 环境,所以我可以提供帮助;当然,如果他们能清楚地看到你在做什么,那么还有很多其他人可能会帮助你。