Link to home
Start Free TrialLog in
Avatar of PremkumarAC
PremkumarAC

asked on

I want JCheckBox Disabled color to be black. Any workaround ?

Hi,
   I have JCheckBox and other components in a panel and I will print the panel. Before printing I will disable the JCheckBox and will show the user. After disabling, the JCheckBox Forground color is Gray and if i print it, it is hardly visible. Is it possible to change the fore ground color of the JCheckBox to Black for printing ??

   Any suggestion or workaround is welcome.

Regards,
Prem.
Avatar of Ovi
Ovi

YourCheckBox.setForeground(yourColor);
Will work even if is disabled.
Avatar of Mick Barry
Why are you disabling it?
Avatar of PremkumarAC

ASKER

Hi Ovi,
   My code is like this:

boolean flag = ...; // i will read the data from a model
myCheckBox.setForeground( Color.black);
myCheckBox.setEnabled( flag);

But, still the check box is disabled and the color is gray and i am getting the same color in the hard copy.

Hi Objects,
   I am reading the values from the model, so i am disabling the JCheckBox.

Regards,
Prem.
f you set the color other to the black before you disable'it you will see the difference.
The checkbox renderer only make a graphic filter on the foreground so a black foreground will become a less black one (gray) after the check box i disabled.
Still don't exactly inderstand your reason for disabling but why not use a glass pane instead of disabling the checkbox?

boolean flag = ...; // i will read the data from a model
//  myCheckBox.setForeground( Color.black);
myCheckBox.setEnabled( flag);
myCheckBox.setForeground(Color.blue); // or new Color(int, int, int);
If you want control of the disabled icon the you can explicitly set it using setDisabledIcon() setDisabledSelectedIcon() method:

eg.

cb.setDisabledIcon(cb.getIcon());
cb.setDisabledSelectedIcon(cb.getSelectedIcon());

will use the same icon when disabled as it does when it is enabled.
Is it possible to add a glassPane to a JPanel ??
No but your frame will have one.
Is it possible to add a glassPane to a JPanel ??
No, you just use the one on your frame.
My parent component is Frame and not JFrame. So I think it is not possible to use Glass pane over my component.
You could possibly switch to a JFrame.
Or define the disable icon you want to use as I suggested above.
Or find an alternative to disabling.

Your decision really :)

checkBox.setForeGround( color) won't work when the checkbox is disabled.
Then simply assign the disabled icon that you want to use explicitly as I described above.
I believe it only greys out the icon, if you have not explicitly defined one.
No comment has been added lately, so it's time to clean up this TA.
I will leave a recommendation in the Cleanup topic area that this question is:
- To be PAQ'ed and points NOT refunded
Please leave any comments here within the next seven days.

PLEASE DO NOT ACCEPT THIS COMMENT AS AN ANSWER !

vemul
Cleanup Volunteer
ASKER CERTIFIED SOLUTION
Avatar of Netminder
Netminder

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial