Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

JDateChooser setEnabled Color

957 views
Skip to first unread message

Biagio

unread,
Jun 5, 2011, 3:52:01 AM6/5/11
to
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

John B. Matthews

unread,
Jun 5, 2011, 1:29:22 PM6/5/11
to
In article
<543b5b7c-b7f7-4445...@n11g2000yqf.googlegroups.com>,
Biagio <soft...@notario.it> wrote:

> I'm using the powerfull JDateChooser JCalendar library 1.3.3.

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

<http://www.toedter.com/en/jcalendar/>

> 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.

--
John B. Matthews
trashgod at gmail dot com
<http://sites.google.com/site/drjohnbmatthews>

Tom

unread,
Jun 5, 2011, 5:39:13 PM6/5/11
to
On Sun, 05 Jun 2011 13:29:22 -0400, John B. Matthews wrote:

> 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...


John B. Matthews

unread,
Jun 6, 2011, 12:02:37 AM6/6/11
to
In article <isgt21$hum$1...@speranza.aioe.org>, Tom <tom...@gmail.com>
wrote:

> On Sun, 05 Jun 2011 13:29:22 -0400, John B. Matthews wrote:
>
> > 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...

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.

Biagio

unread,
Jun 6, 2011, 5:15:27 AM6/6/11
to
On 5 Giu, 19:29, "John B. Matthews" <nos...@nospam.invalid> wrote:
> In article
> <543b5b7c-b7f7-4445-91fb-8f65391a8...@n11g2000yqf.googlegroups.com>,
> <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.
>
> --
> John B. Matthews
> trashgod at gmail dot com
> <http://sites.google.com/site/drjohnbmatthews>

Thanks !!!!

Biagio

Tom

unread,
Jun 6, 2011, 3:53:24 PM6/6/11
to
On Mon, 06 Jun 2011 00:02:37 -0400, John B. Matthews wrote:

> 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....

Roedy Green

unread,
Jun 6, 2011, 10:27:22 PM6/6/11
to
On Sun, 5 Jun 2011 00:52:01 -0700 (PDT), Biagio <soft...@notario.it>
wrote, quoted or indirectly quoted someone who said :

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.

0 new messages