2

我看到一个涉及JLabel用于显示一系列数字的奇怪问题。标签的文本通常类似于0.0 - 100.0(例如)。问题在于,对于少数几个用户,文本出现乱码。在此示例中,文本将显示为/-/,0//-/

到目前为止,这是我所知道的:

  • 这似乎是某种错误的错误,因为显示的每个字符都是预期字符后面的一个 Unicode 字符。
  • 两个数字之间的短划线字符在应用程序中被硬编码为字符串文字。
  • 它发生在各种版本的 Oracle JVM 上,包括 1.6.x 和 1.7.x。
  • 它发生在一些选定的 Windows 7 机器上。

什么可能导致此类问题?我还应该调查什么?谢谢。

4

2 回答 2

4

当您将字体设置为JLabelWindows 字体缓存中损坏的字体时,就会发生这种情况。

要重建缓存:以管理员身份删除此文件并重新启动 PC:

del %WINDIR%\System32\FNTCACHE.DAT
于 2013-04-23T00:34:29.140 回答
0

它看起来像一个错误DateFormat的 ,其中的实例“通常不同步”。如果它是间歇性的,而不是选择性的,请验证 的正确使用 invokeLater(),并“为每个线程创建单独的格式实例”。另请参阅Format

附录:错误符号可能来自DateFormatSymbolsDecimalFormatSymbols的具体子类使用Format。您可以通过多种方式验证事件调度线程的正确使用:

由于您无法重现该问题,因此您必须寻求用户的帮助。理想情况下,您需要征集以下内容:

  • 主机名、平台、语言环境和 JVM 版本来自System.getProperty()

  • 断断续续的还是连贯的?

  • 截图

您可以按照此处Desktop#mail()的建议,在使用准备好的消息中填写一些详细信息,从而使用户更轻松。

于 2013-04-20T01:01:46.560 回答