我看到一个涉及JLabel
的奇怪问题,用于显示一系列数字。标签的文字通常类似于 0.0 - 100.0 (例如)。问题是,对于少数几个用户,文本显示为乱码。在此示例中,文本将显示为 / - /,0 // - / 。
这是我目前所知道的:
什么可能导致这类问题?我还应该调查什么?感谢。
答案 0 :(得分:4)
当您将JLabel
的字体设置为Windows字体缓存中已损坏的字体时会发生这种情况。
要重建缓存:以管理员身份删除此文件并重新启动PC:
del %WINDIR%\System32\FNTCACHE.DAT
答案 1 :(得分:0)
它看起来像一个错误的DateFormat
,其实例“通常不同步”。如果它是间歇性的,而不是选择性的,请验证invokeLater()
的正确使用,以及“为每个线程创建单独的格式实例”。另请参阅Format
。
附录:错误符号可能来自DateFormatSymbols
的具体子类使用的DecimalFormatSymbols
或Format
。您可以通过多种方式验证事件派发线程的正确使用:
检查SwingUtilities.isEventDispatchThread()
。
采用引用文章here中显示的其中一种方案。
按照Memory Consistency Properties中汇总的原则检查源代码。
由于无法重现问题,因此您必须寻求用户的帮助。理想情况下,您需要征求以下内容:
主机名,平台,区域设置&来自System.getProperty()
的JVM版本?
间歇性或一致性?
根据建议here,您可以在使用Desktop#mail()
准备的邮件中填写一些详细信息,从而使用户更轻松。