<Swing Dev> Setting font color of disabled button with HTML <font> tag.

Pavel Porvatov pavel.porvatov at oracle.com
Fri Sep 7 16:07:09 UTC 2012


Hi Alexander,
> Hi.
> I have a JButton with multiple lines of text where I can change the 
> color of a part of the text by html tag <font> . I now wanted to 
> change the font color of a disabled button with <font> tag too, but 
> this only works with Java 6 but NOT with Java 7. See below for an 
> example code that simply creates a JFrame and places 2 Buttons inside, 
> one is enabled the other is disabled. Changing the text color of the 
> disabled button with <font> is only possible with Java 6. See 
> http://imgur.com/E48le,XRppa#0 for a screenshot of Java 6 and 
> http://imgur.com/E48le,XRppa#1 for Java 7. It seems like the UIManger 
> property for color of disabled text is overriding the HTML color 
> information in Java 7 but not in Java 6.
> Is this difference between the two versions wanted and how can I 
> change the font color of part of the text of a disabled JButton with 
> Java 7?
> P.S. My OS is Windows 7 64 Bit and Java versions are 1.6.0_20 and 
> 1.7.0_07
>
> import javax.swing.*;
> public class ButDisColorchange {
>     public static void main(String[] args) {
>         JFrame f=new JFrame();
>         f.setSize(300,200);
>         JButton bEnabled= new JButton("<html><font 
> color=\"green\">This is an</font> <i>ENABLED</i> Button</html>");
>         JButton bDisabled= new JButton("<html><font color=\"red\">This 
> is an</font> <i>DISABLED</i> Button</html>");
>         bDisabled.setEnabled(false);
>         JPanel pane= new JPanel();
>         pane.add(bEnabled);
>         pane.add(bDisabled);
>         f.add(pane);
>         f.setVisible(true);
>     }
> }
>

Now HTML on disabled components looks like disabled...  I don't see an 
easy solution for you. You can change color for all disabled HTML text by

UIManager.put("textInactiveText", Color.SOME_COLOR)

Regards, Pavel



More information about the swing-dev mailing list