Вопрос по java, swing – Как изменить цвет одного JProgressBar в Nimbus?

4

Я пытаюсь изменить цвет отдельного JProgressBar в Nimbus LAF (Look And Feel). Это решение работает, но оно меняет цвета ВСЕХ JProgressBars: /

    UIDefaults defaults = UIManager.getLookAndFeelDefaults();
    defaults.put("nimbusOrange",defaults.get("nimbusBase"));

В этомнит - это еще одно решение для изменения цвета для каждого JProgressBar в отдельности:

    progress = new JProgressBar();
    UIDefaults defaults = new UIDefaults();
    defaults.put("ProgressBar[Enabled].backgroundPainter", new MyPainter());
    progress.putClientProperty("Nimbus.Overrides.InheritDefaults", Boolean.TRUE);
    progress.putClientProperty("Nimbus.Overrides", defaults);

К сожалению, я не могу заставить его работать. Я не знаю, где найти библиотеку для «MyPainter ()». Поэтому я попытался заменить этот метод (не зная, что я делаю) на "defaults.get (" nimbusBase ")" и "Color.red". Тоже не сработало.

Ваш Ответ

1   ответ
4

1. можете ли вы указать, какой из

UIManager.put("ProgressBar.background", Color.orange);
UIManager.put("ProgressBar.foreground", Color.blue);
UIManager.put("ProgressBar.selectionBackground", Color.red);
UIManager.put("ProgressBar.selectionForeground", Color.green);

замечание действительноUIDefaults дляMetalLookAndFeel,

2. затем, пожалуйста, найдите эквивалент в Nimbus по умолчанию

3. затем попытаться переопределитьJProgressBar с логикой и с этим Painter

@ mKorbel, извините, я запутался в слишком большом количестве поисков по этой теме со слишком многими различными ответами. С твоим постом все понятно, хвала! :) Matthieu
+ 1, я еще многому научился по ссылке, которую ты мне дал однажды об этой штуке. Я не знал, что это так просто: -) nIcE cOw
это может быть ужасно, до того момента, когда вы узнаете, где использовать стандартный Color (XxxRenderer), когда putNimbusColor (non-compond) JComponents и для Compoun & JButtons JComponents ... mKorbel
Спасибо за быстрый и полезный ответ. У меня все работает сейчас. : D Для любых будущих читателей: если в вашем компиляторе отсутствуют «com.sun.java.swing.Painter.class» и / или «javax.swing.Painter.class», вы можетескачат это здесь: Java2s.com / Код / Jar / о / Downloadorgnetbeansswingtabcontroljar.htm user1430180
рад помочь тебе mKorbel

Похожие вопросы