<Swing Dev> RFR: 8256019: JLabel HTML text does not support translucent text colors

Prasanta Sadhukhan psadhukhan at openjdk.java.net
Wed Nov 11 08:06:10 UTC 2020


On Wed, 11 Nov 2020 08:00:09 GMT, Prasanta Sadhukhan <psadhukhan at openjdk.org> wrote:

> Issue is a JLabel with a translucent foreground color properly renders plain text, but with HTML text, the alpha component is discarded and the text is rendered using an opaque color.
> As per https://www.w3schools.com/cssref/func_rgba.asp, CSS supports rgba() to support alpha and render translucent text color
> but support for rgba() is not present in JDK html text rendering.
> 
> Added support for rgba() to render translucent text color.

src/java.desktop/share/classes/javax/swing/plaf/basic/BasicHTML.java line 76:

> 74:             }
> 75:             col = new Color(Integer.parseInt(color[0]), Integer.parseInt(color[1]),
> 76:                             Integer.parseInt(color[2]), (int)(Float.parseFloat(color[3])*255));

It seems OceanTheme in Metal L&F supports only rgb

`ColorUIResource CONTROL_TEXT_COLOR =  new PrintColorUIResource(0x333333, Color.BLACK)`

so even when Color(r,g,b,a) is used, it creates rgb color and not rgba 
so alpha is obtained and passed separately.

-------------

PR: https://git.openjdk.java.net/jdk/pull/1158


More information about the swing-dev mailing list