当我使用具有 alpha 值的前景色的 JLabel 时,如下所示:
JLabel label = new JLabel( "This is non HTML text with correct alpha color" );
label.setForeground( new Color( 1.0f, 1.0f, 1.0f, 0.5f) );
标签以 0.5-alpha 正确显示,即 50% 灰色。
但是当我将文本更改为 HTML(以更好地控制文本呈现)时,如下所示:
JLabel label = new JLabel( "<html><p>This is HTML text with incorrect alpha color</p></html>" );
label.setForeground( new Color( 1.0f, 1.0f, 1.0f, 0.5f) );
那么标签就是 100% 白色。看来,在渲染 HTML 时,前景色的 alpha 值只是被忽略了。
我在 Windows 7 64 位下使用 Java 1.6.0_26(32 位)。
这是一个错误还是已知的限制,或者我这里有什么问题吗?
最佳答案
您不能将 HTML 代码和 setForeground 样式混合在一起。
参见JLabel html text ignores setFont以及如何使用 Oracle 的 JLabels( 1 ) 教程。
只需使用 HTML 或 JLabel 样式即可。
关于Java JLabel在渲染HTML时忽略前景色的alpha值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12663268/