JDateChooser setEnabled Color

B

Biagio

Hi,

I'm using the powerfull JDateChooser JCalendar library 1.3.3.

Unfortunately, when the component is setEnabled (false) the color of
date is a gray almost unreadable.

I tried to change color, but when the component is disabled is not
possibile, it is always gray.

I would like to get a look like JTextField.setEditable (false).

Does anyone have any suggestions?

Thanks

Biagio
 
J

John B. Matthews

Biagio said:
I'm using the powerfull JDateChooser JCalendar library 1.3.3.

I assume you mean com.toedter.calendar.JDateChooser, found here:

Unfortunately, when the component is setEnabled (false) the color of
date is a gray almost unreadable.

The color has nothing to do with JDateChooser; it is specified by the
user interface default, which varies for each look and feel.
I tried to change color, but when the component is disabled is not
possibile, it is always gray.

I would like to get a look like JTextField.setEditable (false).

Does anyone have any suggestions?

Because JDateChooser has a com.toedter.calendar.JTextFieldDateEditor, a
subclass of javax.swing.JFormattedTextField, you can set the disabled
color of any particular instance:

JDateChooser jdc = new JDateChooser();
jdc.setEnabled(false);
((JTextFieldDateEditor)jdc.getDateEditor())
.setDisabledTextColor(Color.darkGray);

Alternatively, you can change the UI manager's default, but I'd be wary
of veering too far from the familiar interface; it may be worthwhile to
choose a color derived from the expected value.

String name = "FormattedTextField.inactiveForeground";
ColorUIResource color = (ColorUIResource) UIManager.get(name);
UIManager.put(name, color.darker());

As an aside, I was recently critical of the demo's layout:

<http://groups.google.com/group/comp.lang.java.programmer/msg/39c807ad8e131973>

Line 132 in com.toedter.calendar.demo.JCalendarDemo is the problem:

splitPane.setDividerLocation(190);

Simply remove it to allow pack() to do the right thing.
 
T

Tom

As an aside, I was recently critical of the demo's layout:

<http://groups.google.com/group/comp.lang.java.programmer/ msg/39c807ad8e131973>

Line 132 in com.toedter.calendar.demo.JCalendarDemo is the problem:

splitPane.setDividerLocation(190);

Simply remove it to allow pack() to do the right thing.

Ah - didn't realise it was only the demo program you were unhappy about...

Anyway, the aforementioned additions were:
- nullText property - if the JDC's date is null then display any null
text, for example "Open Ended"

- selectOnFocus property - optionally select the text when the editor
gets the focus

- dateVerifier property - an interface that JDC calls back on to allow
client code to indicate whether a date is selectable; calendar buttons
are disabled for invalid dates and the editors skip to the next valid
date in the "direction of travel"

- use action map to (ctrl-c) popup the calendar; (ctrl-n) set to null

- provide access to the DateFormat inside so you can (eg) set its timezone

I'm in the process of pulling together other people's mods and will
github all this soon...
 
J

John B. Matthews

Tom <[email protected]> said:
Ah - didn't realise it was only the demo program you were unhappy
about...

Honestly, I didn't know either. :) It was just the first thing I ran
across, and I feared it was an ill omen. Of course, the more I use it,
the more I like it.
Anyway, the aforementioned additions were:
- nullText property - if the JDC's date is null then display any null
text, for example "Open Ended"

- selectOnFocus property - optionally select the text when the editor
gets the focus

- dateVerifier property - an interface that JDC calls back on to
allow client code to indicate whether a date is selectable; calendar
buttons are disabled for invalid dates and the editors skip to the
next valid date in the "direction of travel"

- use action map to (ctrl-c) popup the calendar; (ctrl-n) set to null

- provide access to the DateFormat inside so you can (eg) set its
timezone

The dateVerifier looked especially appealing, although I'd since
reverted to the stock 1.3.3. It's clear you've worked with it
extensively; I'd welcome any comment you have on my response to the OP.
I'm in the process of pulling together other people's mods and will
github all this soon...

Excellent.
 
B

Biagio

I assume you mean com.toedter.calendar.JDateChooser, found here:



The color has nothing to do with JDateChooser; it is specified by the
user interface default, which varies for each look and feel.




Because JDateChooser has a com.toedter.calendar.JTextFieldDateEditor, a
subclass of javax.swing.JFormattedTextField, you can set the disabled
color of any particular instance:

    JDateChooser jdc = new JDateChooser();
    jdc.setEnabled(false);
    ((JTextFieldDateEditor)jdc.getDateEditor())
        .setDisabledTextColor(Color.darkGray);

Alternatively, you can change the UI manager's default, but I'd be wary
of veering too far from the familiar interface; it may be worthwhile to
choose a color derived from the expected value.

    String name = "FormattedTextField.inactiveForeground";
    ColorUIResource color = (ColorUIResource) UIManager.get(name);
    UIManager.put(name, color.darker());

As an aside, I was recently critical of the demo's layout:

<http://groups.google.com/group/comp.lang.java.programmer/msg/39c807ad...>

Line 132 in com.toedter.calendar.demo.JCalendarDemo is the problem:

    splitPane.setDividerLocation(190);

Simply remove it to allow pack() to do the right thing.

Thanks !!!!

Biagio
 
T

Tom

The dateVerifier looked especially appealing, although I'd since
reverted to the stock 1.3.3. It's clear you've worked with it
extensively; I'd welcome any comment you have on my response to the OP.

Looks like its gone down a storm...

I'd agree that tweaking the UI defaults is not generally a good idea
but that if you do, stick to the ones that are common (or at least always
likely to be present) across all L&F you might be running under. If you
want to see what UI defaults there are then I recommend Rob Camick's
utility for browsing them:
http://tips4java.wordpress.com/2008/10/09/uimanager-defaults/


@Biagio - of course all your text fields will look the same when disabled,
so your problem is not limited to JDateChooser's text field....
 
R

Roedy Green

Hi,

I'm using the powerfull JDateChooser JCalendar library 1.3.3.

Unfortunately, when the component is setEnabled (false) the color of
date is a gray almost unreadable.

I tried to change color, but when the component is disabled is not
possibile, it is always gray.

I would like to get a look like JTextField.setEditable (false).

Does anyone have any suggestions?

I wrote a DateChooser. If it is defective, I will fix it as top
priority. If you want something eccentric, you have the complete
source code.

See http://mindprod.com/products1.html#SPINNER
The class you want is called DateSpinner.

You can see it in use at http://mindprod.com/applet/canadiantax.html
or http://mindprod.com/applet/bio.html


--
Roedy Green Canadian Mind Products
http://mindprod.com
How long did it take after the car was invented before owners understood
cars would not work unless you regularly changed the oil and the tires?
We have gone 33 years and still it is rare to uncover a user who
understands computers don't work without regular backups.
 
Joined
Sep 8, 2011
Messages
1
Reaction score
0
set JDateChooser not editable

Hello,

private com.toedter.calendar.JDateChooser dcStart;
private com.toedter.calendar.JDateChooser dcEnd;
....
to make dcStart not editable:

((JTextField)dcStart.getDateEditor().getUiComponent()).setEditable(false);

to make the Background white:
((JTextField)dcStart.getDateEditor().getUiComponent()).setBackground(Color.white);

I hope this will help!

Meziano
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,769
Messages
2,569,579
Members
45,053
Latest member
BrodieSola

Latest Threads

Top