1 Я пытаюсь изменить цвет индикатора выполнения, но он остается оранжевым, вот код:
test(){
UIManager.put("ProgressBar.background", Color.BLACK);
UIManager.put("ProgressBar.foreground", Color.RED);
UIManager.put("ProgressBar.selectionBackground", Color.YELLOW);
UIManager.put("ProgressBar.selectionForeground", Color.BLUE);
bar = new JProgressBar();
bar.setBounds(20, 30,400 , 200);
bar.setString("Welcome...");
bar.setStringPainted(true);
this.add(bar);
Я пробовал .setbackground, это тоже не сработало
Место, которое вы называете UIManager.put
, имеет значение, попробуйте вызвать его в разделе верхнего уровня вашего кода.
Как намекнул MadProgrammer, я обнаружил, что это почти всегда вызвано наличием внешнего вида, который переопределяет то, что вы делаете (Ваша IDE может автоматически сгенерировать код внешнего вида для одного без вашего ведома). В соответствии с JavaDoc для помещать «Сохраняет объект в настройках разработчика по умолчанию. Это метод покрытия для getDefaults().put(key, value). Это влияет только на настройки по умолчанию для разработчиков, а не на систему или настройки внешнего вида по умолчанию.», акцент мой.
Если у вас есть внешний вид, используйте следующее, чтобы изменить внешний вид UIManager.getLookAndFeelDefaults().put(...);
, а не просто изменить системные настройки по умолчанию UIManager.put(...);
@sorifiend Я обнаружил, что большинство «системных» стилей (например, Windows и MacOS) просто полностью игнорируют клавиши ?
проблема с вашим кодом может быть связана с местом, которое вы назвали UIManager
.
если вы вызываете его перед инициализацией объекта, он работает правильно:
UIManager.put("ProgressBar.background", Color.GREEN);
UIManager.put("ProgressBar.foreground", Color.BLUE);
UIManager.put("ProgressBar.selectionBackground", Color.RED);
UIManager.put("ProgressBar.selectionForeground", Color.GREEN);
JProgressBar progress = new JProgressBar();
и если вы вызовете UIManager
после инициализации, результат будет другим:
JProgressBar progress = new JProgressBar();
UIManager.put("ProgressBar.background", Color.GREEN);
UIManager.put("ProgressBar.foreground", Color.BLUE);
UIManager.put("ProgressBar.selectionBackground", Color.RED);
UIManager.put("ProgressBar.selectionForeground", Color.GREEN);
результат:
]2
Вы также должны остерегаться того, что 1. Большинство взглядов и ощущений будут игнорировать их и 2. Nimbus использует разные клавиши.
Что ТАКОЕ и как выглядит?