2011-12-06 206 views
3

我正在开发一个带有Synth外观的Java swing应用程序。该应用程序具有包含一些文本的背景图像,并且我需要在此背景图层上方的一些“活动”文本(JLabel中的文本)。但是,我选择的字体(Verdana)由于某种原因在Swing中呈现非常糟糕,因此活动文本的字体与背景的字体不匹配。有谁知道一种让文本更平滑的方法 - 在Swing中看?我发现类似问题herehere,但我不确定AA对其他应用程序映像有什么影响,或者是否使用AWT桌面属性或-Dswing.aatext = true标志。任何提示将不胜感激。谢谢!Swing字体渲染

编辑:我已经测试了这个在OSX以及Windows 7,都表现出相同的效果。

+2

不要做自定义的文本绘图,而是用文本配置一个组件(f.i. JLabel)并在图形顶部显示标签 – kleopatra

+0

对不起,我应该更具体一些,JLabels中的文本不会很好地渲染。 – SuperTron

+0

@camickr - 我们不同意这一点,正如我们所知道的:-)使用桌面属性是非常困难的,没有任何保证让它在任何地方都正确无误。 “最好的”结果是laf可以做到的,深藏在阳光包内,这就是为什么我建议_always_使用JLabel ...... – kleopatra

回答

2

这是Swing本身的问题,我相信。看看相关的问题。使用FontForge禁用提示可以帮助我的经验。

+1

看到问题在于我无法在每个用户计算机上经历该过程:O – SuperTron

+0

如果可以切换,SWT在字体呈现方面做得更好。否则,你可以找到字体渲染库。 –

+0

Linux'暗示恐惧症:-)好奇:设置awt.desktophints会发生什么(如http://java.sun.com/javase/6/docs/api/java/awt/doc-files/DesktopProperties.html所述)关闭? – kleopatra