Java 如何使JTextField呈现补充字符

Java 如何使JTextField呈现补充字符,java,swing,unicode,Java,Swing,Unicode,我尝试设置一些JTextComponent小部件(主要是JTextField组件)以Unicode格式输入文本。在这方面,我需要渲染僧伽罗字符。我将Iskoola Pota字体设置为我所有的 这在大多数情况下都可以正常工作,但在某些情况下会失败 具有一个或两个字符的字符将正确渲染 Ex: අම්මා, වයඹ, අධිකාරිය 但问题是3个字符的字符 Ex: ප්‍රවෘත්ති (THIS IS RENDERED AS ප්රවෘත්ති) ව්‍යාපෘතිය (THIS IS REND

我尝试设置一些JTextComponent小部件(主要是JTextField组件)以Unicode格式输入文本。在这方面,我需要渲染僧伽罗字符。我将Iskoola Pota字体设置为我所有的
这在大多数情况下都可以正常工作,但在某些情况下会失败

具有一个或两个字符的字符将正确渲染

Ex: අම්මා, වයඹ, අධිකාරිය
但问题是3个字符的字符

Ex: ප්‍රවෘත්ති (THIS IS RENDERED AS ප්රවෘත්ති)
ව්‍යාපෘතිය (THIS IS RENDERED AS ව්යාපෘතිය)
问题是像
ප්‍ර 被渲染为(ප්ර)
ව්‍යා 被渲染为(ව්යා)。
下面提供了屏幕截图

图片如下: 在这里අම්මා, වයඹ, අධිකාරිය 正确渲染,但ප්‍රවෘත්ති 及ව්‍යාපෘතිය 文字表达不正确

我还更新了我的JDK版本和JRE。下面是NetBeans IDE中显示的版本详细信息

Java: 1.7.0_40; Java HotSpot(TM) Client VM 24.0-b56
Runtime: Java(TM) SE Runtime Environment 1.7.0_40-b43
System: Windows 7 version 6.1 running on x86; Cp1252; en_US (nb)
我无法理解如何在我的程序中实现补充字符和代理对API
jsr204
。非常感谢您的帮助。
提前感谢。

尝试查看layoutGlyphVector如何使用三字符。它是否提供了正确的表示形式?如果是,您可以尝试按此处所述设置自定义GlyphPainter

感谢您提供的提示,
尝试查看layoutGlyphVector如何使用三字符,但我如何检查使用java?请支持我,因为这将是一个巨大的帮助。再次感谢。java.awt.Font具有公共GlyphVector布局GlyphVector(FontRenderContext frc,char[]文本、整数开始、整数限制、整数标志)您可以获取矢量并绘制它以查看其呈现方式。您的任何字符都不使用代理,也与补充字符无关。Unicode Sinhala范围为U+0D80–U+0DFF。显然,问题在于缺少U+200D(零宽度连接符)。亲爱的先生,您能指导我如何通过编程实现吗?如果我手动注入零宽度JOINER,它是否会正确地呈现在JTextField中?或者我应该为特定的JTextField实现自定义文档或文本呈现器吗?请在这个问题上帮助我,我非常感谢您的帮助。提前感谢。