#java #swing
Нужно изменить цвет полоски прогресса. Метод setBackground не помогает.
UIManager.put("ProgressBar.background", Color.ORANGE);
UIManager.put("ProgressBar.foreground", Color.BLUE);
UIManager.put("ProgressBar.selectionBackground", Color.RED);
UIManager.put("ProgressBar.selectionForeground", Color.GREEN);
Это тоже не оказывает никакого эффекта.
Как можно изменить цвет полосы прогресса?
Предполагаю, что нужно изменить метод, в котором происходит отрисовка, но найти этот
метод не могу.
Ответы
Ответ 1
Метод setBackground изменяет цвет фона. Для того чтобы изменить цвет самой полосы прогресса нужно использовать метод setForeground. Например: jProgressBar1.setForeground(Color.YELLOW);Ответ 2
Вариант с UIManager, описанный в англоязычном Stack Overflow, отлично работает. Скорее всего вы что-то не так делаете. Вот пример: import java.awt.BorderLayout; import java.awt.Color; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.awt.event.WindowListener; import javax.swing.JFrame; import javax.swing.JProgressBar; import javax.swing.SwingUtilities; import javax.swing.UIManager; public class Main extends JFrame { private int counter = 0; private JProgressBar progressBar; public Main() { super("JProgressBar"); setSize(300, 50); UIManager.put("ProgressBar.background", Color.ORANGE); UIManager.put("ProgressBar.foreground", Color.BLUE); UIManager.put("ProgressBar.selectionBackground", Color.RED); UIManager.put("ProgressBar.selectionForeground", Color.GREEN); progressBar = new JProgressBar(); getContentPane().add(progressBar, BorderLayout.CENTER); WindowListener wndCloser = new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }; addWindowListener(wndCloser); setVisible(true); while (counter <= 100) { Runnable runme = () -> progressBar.setValue(counter); SwingUtilities.invokeLater(runme); counter++; try { Thread.sleep(100); } catch (Exception ignored) {} } } public static void main(String[] args) { new Main(); } } Модифицировал пример JProgressBar по ссылке.
Комментариев нет:
Отправить комментарий