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