JMenuItem z ikoną generowaną przez Icon

0

Witajcie,

Tworzę GUI do aplikacji, gdzie mam:

menuOptionsForegroundBlue = new JMenuItem("Blue", new CircleIcon(Color.BLUE));

Klasa circleIcon, która implementuje interfejs Icon:

    private int width = 12;
    private int height = 12;
    private Color color;

    public CircleIcon(Color c){
        color = c;
    }

    @Override
    public void paintIcon(Component c, Graphics g, int x, int y) {

          Graphics2D g2 = (Graphics2D) g;
          Ellipse2D.Double circle = new Ellipse2D.Double(6, 4, width -1, height -1);
          g2.setColor(color);
          g2.fill(circle);
    }

    @Override
    public int getIconWidth() {

        return width;
    }

    @Override
    public int getIconHeight() {

        return height;
    }

W tym momencie, kiedy ustawiam kolor w CircleIcon na BLUE, w menu koloruje się ikona, ale też tekst w JMenuItem.
Co mogę zrobić, aby kolorowała się tylko ikona, a tekst JMenuItem był czarny?

Pozdrawiam.

0

Gdzieś niechcący zmieniasz kolor tekstu.

0
bogdans napisał(a):

Gdzieś niechcący zmieniasz kolor tekstu.

Nie, kolor zmieniam jedynie w klasie, która odpowiada za ikonę. Nie wiem tylko czemu wtedy zmienia się kolor ikony i tekstu w menu.

0

Jaki SO i jaka wersja Javy?
Nie wierzyłem w to co piszesz, więc sprawdziłem korzystając z Twojego kodu.
screenshot-20170604173741.png

0
bogdans napisał(a):

Jaki SO i jaka wersja Javy?
Nie wierzyłem w to co piszesz, więc sprawdziłem korzystając z Twojego kodu.
screenshot-20170604173741.png

Java 1.8.0_111, OS Mac Sierra, teraz przyszło mi do głowy, że może być inny look and feel, dodałem do mojego kodu:

        UIManager.setLookAndFeel(
                UIManager.getCrossPlatformLookAndFeelClassName()
        );

I wszystko ok.
Dziękuję za inspirację! :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0