Java文本抗锯齿:不工作时如何调试?

Java文本抗锯齿:不工作时如何调试?,java,antialiasing,Java,Antialiasing,我正在开发一个相当大的基于Swing的应用程序(JPanels、JLabels等),我必须找出文本抗锯齿(JLabels等)不起作用的原因 正如您可能知道的,抗锯齿通常是自动工作的(无论如何,Java 1.6),也就是说,当您创建一个简单的Swing应用程序(例如,只有一个带有JLabel的JPanel)时,JLabel上的文本将立即被抗锯齿。不需要System.setProperty(“awt.useSystemAAFontSettings”,“on”)和/或System.setPropert

我正在开发一个相当大的基于Swing的应用程序(JPanels、JLabels等),我必须找出文本抗锯齿(JLabels等)不起作用的原因

正如您可能知道的,抗锯齿通常是自动工作的(无论如何,Java 1.6),也就是说,当您创建一个简单的Swing应用程序(例如,只有一个带有JLabel的JPanel)时,JLabel上的文本将立即被抗锯齿。不需要
System.setProperty(“awt.useSystemAAFontSettings”,“on”)
和/或
System.setProperty(“swing.aatext”,“true”)

但此应用程序不同,它不使用现成的反别名,也不使用
System.setProperty(“awt.useSystemAAFontSettings”,“on”)
和/或
System.setProperty(“swing.aatext”,“true”)
main(String[]args)
中反别名,on也不能将
-Dawt.useSystemAAFontSettings=on
和/或
-Dswing.aatext=true
作为VM参数。我尝试了这些和其他我在这个网站和互联网上能找到的所有建议,但都没有用:这个应用程序从来没有反锯齿,不管我做什么或不做什么

我现在别无选择。因此,我的问题是:

  • 我可以采取哪些步骤来找出抗锯齿不起作用的原因
  • 我应该检查哪些属性
  • 我应该使用调试器跟踪哪些代码
  • 什么情况会导致antialias不起作用
欢迎提供所有见解。

请尝试中的建议。

从1.6开始,它看起来像。然而,正如@Andrew所指出的


您可能要做的一件事是转储
awt.font.desktophits
Map
,以查看设置了什么(如果有的话)。

程序是否使用自定义外观?您是否尝试过更改外观以查看它是否有影响?在调用setProperty()后,是否转储等效的getProperty()&检查值?我的理解是,某些属性只能在启动时设置。我不确定这是否是其中之一。虚拟Hello Swing World应用程序是否在目标系统上很好地呈现抗锯齿文本?