JDateChooser setEnabled Color

Discussion in 'Java' started by Biagio, Jun 5, 2011.

  1. Biagio

    Biagio Guest

    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
    Biagio, Jun 5, 2011
    #1
    1. Advertising

  2. In article
    <>,
    Biagio <> 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>
    John B. Matthews, Jun 5, 2011
    #2
    1. Advertising

  3. Biagio

    Tom Guest

    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...
    Tom, Jun 5, 2011
    #3
  4. In article <isgt21$hum$>, Tom <>
    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.

    --
    John B. Matthews
    trashgod at gmail dot com
    <http://sites.google.com/site/drjohnbmatthews>
    John B. Matthews, Jun 6, 2011
    #4
  5. Biagio

    Biagio Guest

    On 5 Giu, 19:29, "John B. Matthews" <> wrote:
    > In article
    > <>,
    >
    >  Biagio <> 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/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
    Biagio, Jun 6, 2011
    #5
  6. Biagio

    Tom Guest

    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....
    Tom, Jun 6, 2011
    #6
  7. Biagio

    Roedy Green Guest

    On Sun, 5 Jun 2011 00:52:01 -0700 (PDT), Biagio <>
    wrote, quoted or indirectly quoted someone who said :

    >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.
    Roedy Green, Jun 7, 2011
    #7
  8. Biagio

    meziano

    Joined:
    Sep 8, 2011
    Messages:
    1
    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
    meziano, Sep 8, 2011
    #8
    1. Advertising

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

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. moondaddy
    Replies:
    3
    Views:
    38,275
    moondaddy
    Apr 28, 2004
  2. PJ6
    Replies:
    4
    Views:
    4,889
  3. Andrew Arace

    BGR Color to Java Color

    Andrew Arace, Sep 13, 2003, in forum: Java
    Replies:
    7
    Views:
    7,784
    Stephen Gilbert
    Sep 16, 2003
  4. Niels Dybdahl

    Color.white vs. Color.WHITE

    Niels Dybdahl, Oct 6, 2004, in forum: Java
    Replies:
    3
    Views:
    433
    Chris Smith
    Oct 6, 2004
  5. Kamaljeet Saini
    Replies:
    0
    Views:
    405
    Kamaljeet Saini
    Feb 13, 2009
Loading...

Share This Page