Java text-antialiasing:不工作时如何调试?

时间:2011-04-01 12:33:54

标签: java antialiasing

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

正如您所知,抗锯齿通常可以自动运行(无论如何使用Java 1.6),也就是说,当一个人创建一个简单的Swing-app(例如,只有一个带有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)进行抗锯齿,也不与{{ 1}}和/或-Dawt.useSystemAAFontSettings=on作为VM参数。我已经尝试过这些以及我在本网站和互联网上可以找到的所有建议,但无济于事:这个应用程序从不反抗,无论我做什么或不做。

我现在没有选择了。所以我的问题是:

  • 我可以采取哪些步骤来找出为什么抗锯齿不起作用?
  • 我应该检查哪些属性?
  • 我应该使用调试器跟踪哪些代码?
  • 什么情况可能会导致抗锯齿不起作用?

欢迎所有见解。

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

从1.6开始,它看起来像swing.aatext is ignored。但是,正如@Andrew所指出的,awt.useSystemAAFontSettings should work ......

您可能要做的其中一件事就是为Map desktop property转出awt.font.desktophints,只是为了看看是否设置了什么。