为什么Java Swing html字体渲染看起来如此糟糕?

时间:2010-10-21 16:27:19

标签: java html swing fonts

要显示具有多种样式的复杂多行标签,我使用Swing的html渲染功能,最终得到了非常糟糕的字体渲染。

我试图明确设置字体系列 -

infoLabel.setText("<html><span style='font-family:Tahoma;'>My text..

但与非HTML文本相比,带有HTML文本的JLabel总是渲染得非常难看,看起来没有发生反锯齿。我尝试了字体平滑的CSS属性:

<html><span style="font-family:Tahoma;font-smooth:always;">

但Swing渲染的html看起来仍然很难看。如果我不在setText中使用html样式,它看起来很好。我确保我使用相同的字体系列,字体大小等。

可能是什么问题?

2 个答案:

答案 0 :(得分:1)

我想知道你是否必须单独指定样式,如

"<html><style type = 'text/css'> span {font-family: Tahoma;} ...... <span>...."

而不是直接将其添加到span标记。

答案 1 :(得分:1)

尝试使用-Dswing.aatext=true标志运行程序,它会强制它使用抗锯齿。

如果您需要复杂的样式,可以使用JTextPane。使其透明,不可编辑,删除边框,它看起来就像一个标签。你可以应用不同的样式,它将使用抗锯齿渲染,你不必处理html,它的支持不是那么好。