【问题标题】:Unicode characters not displaying when Java program run on WindowsJava 程序在 Windows 上运行时不显示 Unicode 字符
【发布时间】:2012-12-20 07:03:54
【问题描述】:

我的 Java 程序在其他人的笔记本电脑 (Windows) 上运行时没有出现 unicode 字符有什么原因吗?

我在我的 Mac 上用 Java (Swing) 编写了一个国际象棋程序。每个棋子都由该棋子的 unicode 字符表示。棋盘显示为一个按钮网格,每个按钮的文本都设置为国际象棋 unicode 字符。

在我的 Mac 上它运行良好,但我的朋友(使用 Windows)说,尽管出现了按钮网格,但他看不到任何国际象棋字符。幸运的是,我将每个按钮的工具提示设置为它所代表的作品的名称,这使他能够测试游戏,但是我相信你明白必须将鼠标悬停在每个方块上方才能知道什么是耗时的.尽管如此,它确实表明我的程序运行良好,只是没有显示任何 unicode。

我可以对我的程序或他笔记本电脑上的朋友设置做些什么来解决这个问题?

【问题讨论】:

  • 如果没有看到代码的相关部分,这很难回答。
  • 也许在 Windows 上使用了无法显示这些字符的字体?您应该使使用的字体可配置,然后重试。
  • 在这个example上试试这个variation
  • @a_horse_with_no_name 实际上我已经像这样设置了按钮的字体。私人字体字体=新字体(空,Font.PLAIN,36); button.setFont(字体);我使用 null 是因为显然在 API 中它使用了默认字体。我将大小设置为 36,因为否则字符看起来很小。我应该更改 null 语句吗? jlordo 我会试着放一个GUI代码的小例子。有什么办法可以附加一个人们可以在这个网站上测试的 Jar 文件吗?通过测试我的意思是只是运行,看看他们的系统是否会显示 unicode?​​span>
  • 最好使用默认字体并简单地增加它的大小:getFont().deriveFont((float)36)getFont() 应该在显示碎片的组件上调用。

标签: java windows macos swing


【解决方案1】:

example 上的此variation 在Windows 7 上使用默认Font 为家庭Font.SANS_SERIF 正常工作,其中包含所需的字形。

static Font font = new Font(Font.SANS_SERIF, Font.PLAIN, 72);

相比之下,您将name 设置为null;因此,“getName() 返回的新Font 的逻辑字体名称设置为名称Default。”

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-31
    • 1970-01-01
    • 2023-04-01
    • 1970-01-01
    • 2013-12-05
    相关资源
    最近更新 更多