Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.gui > #4651

Re: Anybody know how to set the color of the text in a disabled JMenuItem?

From "John B. Matthews" <nospam@nospam.invalid>
Newsgroups comp.lang.java.gui
Subject Re: Anybody know how to set the color of the text in a disabled JMenuItem?
Date 2011-08-20 03:45 -0400
Organization The Wasteland
Message-ID <nospam-E55C9E.03452820082011@news.aioe.org> (permalink)
References (1 earlier) <j2k0p5$5ru$1@dont-email.me> <j2k5te$5lp$1@dont-email.me> <j2kfm1$tai$1@dont-email.me> <nospam-C33427.07014719082011@news.aioe.org> <j2m3kp$1c3$1@dont-email.me>

Show all headers | View raw


In article <j2m3kp$1c3$1@dont-email.me>,
 Knute Johnson <september@knutejohnson.com> wrote:

> On 8/19/2011 4:01 AM, John B. Matthews wrote:
> > In article<j2kfm1$tai$1@dont-email.me>, markspace<-@.>  wrote:
> >
> >> On 8/18/2011 4:06 PM, Knute Johnson wrote:
> >>
> >>> Thanks for that but apparently I asked the wrong question. Why
> >>> can't I change the foreground color on my JMenuItem like you can?
> >>> I'm running 1.7 on Windows XP. It may be something different with
> >>> the LookAndFeel.
> >>
> >>
> >> I'm running Java 7 on Windows 7.  My LNF is just the default one
> >> (might be Synth).  I was running within NetBeans 7.0.1 IDE.  Can't
> >> say why it doesn't work for you.
> >
> > Have the related UI defaults for MenuItem.* changed?
> 
> I don't know.
> 
> > <http://tips4java.wordpress.com/2008/10/09/uimanager-defaults/>
> 
> I hadn't remembered that technique for changing the defaults but I only 
> want to change one JMenuItem's disabled foreground color.  That defaults 
> do work just fine to change them all.  I tried setting a new UI on the 
> JMenuItem but that doesn't seem to work either (see SSCCE below).  When 
> I started this I didn't think it was going to take two days of messing 
> around with it :-).

I'm not sure it's the best way, but the approach shown below may offer a 
temporary workaround. IIUC, disabled isn't just a color; it's a 
platform specific implementation intended to be visibly distinct from 
enabled text, irrespective of color.

import java.awt.*;
import javax.swing.*;

public class test extends JFrame {

    private static final String disabled = "MenuItem.disabledForeground";
    private static final Color disColor = (Color) UIManager.get(disabled);

    public test() {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        JMenuBar mb = new JMenuBar();
        setJMenuBar(mb);
        JMenu menu = new JMenu("test");
        mb.add(menu);

        JMenuItem mi = new JMenuItem("This is default disabled");
        mi.setEnabled(false);
        menu.add(mi);
        UIManager.put(disabled, Color.red);
        mi = new JMenuItem("This is disabled red");
        mi.setEnabled(false);
        menu.add(mi);
        UIManager.put(disabled, disColor);
        mi = new JMenuItem("Default restored");
        mi.setEnabled(false);
        menu.add(mi);

        JPanel p = new JPanel();
        p.setPreferredSize(new Dimension(100, 100));
        add(p);

        pack();
        setVisible(true);
    }

    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {

            @Override
            public void run() {
                new test();
            }
        });
    }
}

Cf. the JTextComponent, which has setDisabledTextColor():

<http://groups.google.com/group/comp.lang.java.programmer/browse_thread/thread/b015d90109ee765d/4753a4e6556e255>

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

Back to comp.lang.java.gui | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

Anybody know how to set the color of the text in a disabled JMenuItem? Knute Johnson <september@knutejohnson.com> - 2011-08-18 11:39 -0700
  Re: Anybody know how to set the color of the text in a disabled JMenuItem? markspace <-@.> - 2011-08-18 14:38 -0700
    Re: Anybody know how to set the color of the text in a disabled JMenuItem? Knute Johnson <september@knutejohnson.com> - 2011-08-18 16:06 -0700
      Re: Anybody know how to set the color of the text in a disabled JMenuItem? markspace <-@.> - 2011-08-18 18:52 -0700
        Re: Anybody know how to set the color of the text in a disabled JMenuItem? "John B. Matthews" <nospam@nospam.invalid> - 2011-08-19 07:01 -0400
          Re: Anybody know how to set the color of the text in a disabled JMenuItem? Knute Johnson <september@knutejohnson.com> - 2011-08-19 09:39 -0700
            Re: Anybody know how to set the color of the text in a disabled JMenuItem? markspace <-@.> - 2011-08-19 10:49 -0700
            Re: Anybody know how to set the color of the text in a disabled JMenuItem? "John B. Matthews" <nospam@nospam.invalid> - 2011-08-20 03:45 -0400
              Re: Anybody know how to set the color of the text in a disabled JMenuItem? Knute Johnson <september@knutejohnson.com> - 2011-08-20 14:16 -0700
                Re: Anybody know how to set the color of the text in a disabled JMenuItem? "John B. Matthews" <nospam@nospam.invalid> - 2011-08-20 21:17 -0400
              Re: Anybody know how to set the color of the text in a disabled JMenuItem? Knute Johnson <september@knutejohnson.com> - 2011-08-20 14:28 -0700
        Re: Anybody know how to set the color of the text in a disabled JMenuItem? Tom <tom400f@gmail.com> - 2011-08-19 17:16 +0000
          Re: Anybody know how to set the color of the text in a disabled JMenuItem? Knute Johnson <september@knutejohnson.com> - 2011-08-19 11:03 -0700

csiph-web