当前位置: 首页 > 面试题库 >

如何在JTextArea中显示日语字符

龙晟睿
2023-03-14
问题内容

显示日语字符时,JTextArea的行为很奇怪-
我得到了众所周知的空白矩形而不是汉字。最奇怪的是,JTextField完美地显示了它们(在两种情况下,我都使用“
Tahoma”字体家族)。另外,如果我输入以下代码:

    Font f = new Font("123", Font.PLAIN, 12); // This font doesn't exists
    problemTextArea.setFont(f);

…在我将日语字符串写入问题文本区域之前,它显示汉字!

PS对不起,我的英语。

Upd: 我正在使用Windows


问题答案:

问题在于JTextArea使用的默认字体与JTextField不同。在我编写的必须支持多语言的应用程序中,我遇到了同样的问题。

问题的原因是JTextArea通常用于显示等宽字体,例如Courier New。通常,Java不包含用于显示汉字的等间距图形字体的其他映射。

您所拥有的修复程序有效,因为没有名为“
123”的字体,因此采用了默认设置(对话框)。“对话框”字体在内部映射到平台的font.properties文件中的字体系列。这将与JTextField使用相同的字体。

我有以下修复程序,以确保在所有图形组件中使用相同的字体定义。您还可以找到JTextArea的特定键并进行更改。这样,您不必担心任何组件的字体,它们将通过对话框初始化。

Object fontDefinition = new UIDefaults.ProxyLazyValue("javax.swing.plaf.FontUIResource", null, new Object[] { "dialog", new Integer(Font.PLAIN), new Integer(12) });

java.util.Enumeration keys = UIManager.getDefaults().keys();
while (keys.hasMoreElements()) {
    Object key = keys.nextElement();
    Object value = UIManager.get(key);
    if (value instanceof javax.swing.plaf.FontUIResource) {
        UIManager.put(key, fontDefinition);
    }
}


 类似资料:
  • 我想使用JText区或JTextPane作为代码更改播放器,代码更改和插入符号移动记录在文本文件中。但问题是,它是从支持多选的编辑器记录的,因此一次有多个插入符号位置。 可以在JTextArea或JTextPane中显示多个carets吗? 我尝试使用JTextPane并将代码呈现为超文本标记语言,并插入了一些

  • 问题内容: 我可以将a的文本更改为粗体(附加文本),然后再恢复为普通文本,是否仅将粗体文本显示为粗体,其余部分正常显示? 还可以将其内容另存为RTF文档吗? 问题答案: 不,您要找的是JEdi​​torPane 它支持HTML(3.2?),可让您使用(和其他较早的标记)提供富文本格式。 编辑 :根据我上面引用的javadoc,JEditorPane还支持有限的RTF。不要忘记将MIME更改为

  • 问题内容: 我正在努力在数据框中显示日语字符,这些字符已使用RMySQL软件包从MySQL数据库中检索到。如果我将数据库中的字符串粘贴到一个变量中,该变量具有Encoding’UTF-8’,则日语字符显示良好。数据框列的编码为“未知”,我还没有使用iconv对其进行更改。 数据库的一行是: 检索使用: 第一行数据: 任何帮助,不胜感激。 问题答案: 通过在检索数据之前添加以下行,似乎可以解决此问题

  • 我创建了一个javafx应用程序,使用javafx scene builder来设计它的界面,当我试图显示一些波斯语或阿拉伯语字符时scene builder以无序模式显示它,例如,当我将一个标签的文本改为一个波斯语或阿拉伯语单词“”它正在无序模式下(从左到右)写作“”(字符之间没有任何空格)。我想javafx场景构建器可能不支持波斯语或阿拉伯语,但我知道应该有一些方法,所以请帮助我怎么做。 注意

  • 问题内容: 这是关于如何在django支持的网站中使用jQuery 。 是 我正在使用。 我正在使用和创建成功显示日期。 但未显示日期选择器图标。我正在使用Django模型形式。 问题答案: 你可以使用来将a传递给表单,该表单将在html中呈现。然后,将读取该内容以呈现功能。 这是一个例子: …或使用ModelForm时通过Meta类中的属性: 现在在模板中:

  • 问题内容: 我的数据库已正确设置为UTF-8,并且正在处理包含日语字符的数据库。如果我从mysql命令行执行SELECT * …,我会正确看到日语字符。当将数据从数据库中拉出并显示在网页上时,我可以正确地看到它。 但是,在phpMyAdmin中查看表数据时,我只会看到垃圾文本。即。 ç§ã日本料ç†ãŒå¥½ããããã㥥œœ¬æ–™ç†ã… 如何获取phpMyAdmin以日语显示字