【问题标题】:Java Swing JTextArea: Problem displaying Myanmar TextJava Swing JTextArea:显示缅甸文本的问题
【发布时间】:2019-12-04 11:07:17
【问题描述】:

我在 JTextArea 上正确显示缅甸文本时遇到问题。 正确的文字是

သူ အစိမ်းရောင် ဘောလုံးကို ရွေးခဲ့သည်

但在我的 JTextArea 中显示为:

wrongly displayed text

某些字符的顺序不正确。 当我将文本从其他程序 (Chrome/MSWord) 复制到 JTextArea 时,就会发生这种情况。

任何帮助/指针都非常感谢

【问题讨论】:

  • 你用的是什么字体?
  • 每次您从非 Java 应用程序将缅甸语字符复制到 JTextArea 时,是否都会发生这种错误排序?如果没有,当您只复制缅甸字符时会发生这种情况吗?当您复制包含缅甸字符和非缅甸字符的文本时会发生这种情况吗?复制的文本是否包含不可打印的字符,例如escape character
  • @JallikStepsto,我使用的是缅甸文字字体。
  • @Abra,字符的错误顺序似乎只发生在某些字符上,是的,每次我从非 Java 应用程序复制时。如果我复制同时包含缅甸语和非缅甸语字符的文本,就会发生这种情况。不,复制的文本不包含任何不可打印的字符。
  • 当我将插入符号从一个字符移动到另一个字符时,我注意到在 MSWord 中,ဘော 是 1 个单位或 1 个字符,而在 JTextArea 中它由 2 个单位或 2 个字符组成。

标签: java swing jtextarea


【解决方案1】:

通过启用连字和字距调整来解决问题。

更改了我的代码

    Font srcFont = new Font(srcFontFace, Font.PLAIN, fontSize);
    setFont(srcFont);

    Font srcFont = new Font(srcFontFace, Font.PLAIN, fontSize);
    Map attributes = srcFont.getAttributes();
    attributes.put(TextAttribute.LIGATURES, TextAttribute.LIGATURES_ON);
    attributes.put(TextAttribute.KERNING, TextAttribute.KERNING_ON);
    setFont(srcFont);

【讨论】:

    猜你喜欢
    • 2014-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-26
    • 1970-01-01
    相关资源
    最近更新 更多