限制Swing的Unicode支持

时间:2010-06-20 22:53:46

标签: java user-interface swing unicode

不久前I asked a question尝试识别某个unicode字符,以便在GUI中使用。我得到了我正在寻找的角色,但它在我正在构建的Swing GUI中不起作用。

所以,SO社区,我向你提出这些问题:

Swing / Java对Unicode支持有哪些限制?是否有完全支持的某些unicode子集以及将来在设计时应该远离什么?

编辑:在应用Alan Moore建议的'Arial Unicode MS'字体后,一切似乎都清晰了。似乎奇怪的是我应该设置第三方字体以使所有的unicode字符显示出来。

3 个答案:

答案 0 :(得分:5)

通常,当字形无法在UI中正确显示时,这是因为您使用的字体不具有该字形,而不是因为您正在使用的任何工具包中的unicode支持存在问题。非常,很少有字体具有所有字形 - 您需要确保选择在您关注的代码点中具有覆盖范围的字体。

答案 1 :(得分:2)

有关逻辑字体限制的详细信息,请参阅Sun Java 6 fonts Supported Fonts。 Sun的选择可能是由于实用主义和许可证的混合。请注意,文档说您可以通过将它们添加到JRE lib/fonts/fallback目录来配置fallback fonts

答案 2 :(得分:0)

Java 1.6应该支持所有Unicode字符。 IIRC 1.5没有处理多字符UTF-16字符的方法(新的API被添加到1.6)。

您发布的问题中的字符在我使用的Java编辑器中显示得很好。确保您使用的字体支持该字符;内置的JDK字体支持很多字符,但绝对不是全部。看一下java.awt.Font.canDisplay()方法。