我正在为Java中的Malayalam编写文本编辑器。
Unicode字体在Swing中无法正确呈现 - JTextArea
。
字符组合。而不是混合两个字符,文本区域单独显示它。 swing和font都支持这些字符,但是在键组合中它不起作用即使使用了支持的字体。
例如:
ക്രാ
്രക
jButton69.setFont(new java.awt.Font("Meera", 0, 12)); // NOI18N
jButton69.setText(" ്ര");
jTextArea1.append(jButton69.getText());
编辑:(作者评论的补充资料):
当结合三个字符ക(\ u0D15)+്(\ u0D4D)+ര(\ u0D30)时,我得到了ര്ക而不是രര。
语言是Malayalam,Font是Meera
答案 0 :(得分:0)
您必须将JTextArea字体设置为Unicode字体。
除此之外,button69与问题无关,所以我不使用它。
以下代码以您希望的方式显示文本:
String problemText = "ഔ";
Font font = new Font("Arial Unicode MS", Font.PLAIN, 18);
JTextArea jTextArea1 = new JTextArea();
jTextArea1.setFont(font);
jTextArea1.append(problemText);
我希望它有所帮助。
答案 1 :(得分:0)
请查看零宽度连接器和零宽度非连接器。根据您的要求,我使用零宽度连接器得到了正确的输出:\ u0d15 + \ u0d4d + \ u200d + \ u0d30。
答案 2 :(得分:0)
请查看零宽度连接器和零宽度非连接器。根据您的要求,我通过使用零宽度连接器得到正确的输出:\ u0d15 + \ u0d4d + \ u200d + \ u0d30(请忽略我以前的答案,它是相同的但是使用错误的用户帐户发布)。