【问题标题】:Swing Font RenderingSwing 字体渲染
【发布时间】:2011-12-06 15:54:16
【问题描述】:

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

编辑:我已经在 OSX 和 Windows 7 中对此进行了测试,两者都表现出相同的效果。

【问题讨论】:

  • 不要进行自定义文本绘制,而是使用文本配置组件(f.i. JLabel)并将标签呈现在图形顶部
  • 对不起,我应该说得更具体一些,JLabels 中的文本渲染得不好。
  • @camickr - 我们不同意这一点,我们知道 :-) 使用桌面属性非常困难,没有任何保证在任何地方都能正确使用它。 “最好”的结果是 laf 可以做的,深深地隐藏在 sun 包中,这就是为什么我建议总是使用 JLabel ...
  • hmmm ... JLabel 看起来很糟糕?这很奇怪,自 6u10 以来还没有看到太多的混叠问题。时间到了。
  • 发布您的sscce 和您看到的图片以进行比较,e.g.

标签: java swing user-interface rendering synth


【解决方案1】:

我相信这是 Swing 本身的问题。查看相关问题。

使用FontForge 禁用提示可以帮助我的体验。

【讨论】:

  • 看到问题在于我无法在每台用户的计算机上都完成该过程:O
  • 如果可以切换的话,SWT 在字体渲染方面做得更好。否则也许你可以找到字体渲染库。
  • Linux' 暗示恐惧症 :-) 好奇:将 awt.desktohints(如 java.sun.com/javase/6/docs/api/java/awt/doc-files/… 所述)设置为关闭会发生什么?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-09-02
  • 1970-01-01
  • 2021-02-06
  • 2014-12-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多