Changer le couleur du ProgressBar

mar -  
KX Messages postés 19031 Statut Modérateur -
Bonjour,
j'ai un petit problème avec une JProgressBar qui est de couleur orangé alors que je veux le changer de façon qu'il soit rouge si la valeur de progression < 20 orange si <60 et vert si non j'ai utilisé le UIManger, setForeground, setBackground mais sans aucune résultat
merci d'avance

1 réponse

  1. KX Messages postés 19031 Statut Modérateur 3 020
     
    Pourtant setForeground devrait fonctionner...

    Exemple :

    import java.awt.Color;
    import javax.swing.JFrame;
    import javax.swing.JProgressBar;
    
    public class Test 
    {
        public static void main(String[] args) throws InterruptedException
        {
            JFrame frame = new JFrame();
            
            JProgressBar bar = new JProgressBar();
            frame.add(bar);
            
            frame.setLocationRelativeTo(null);
            frame.pack();
            frame.setVisible(true);
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            
            final int min = 56, max = 234;
            
            bar.setMinimum(min);
            bar.setMaximum(max);
            
            bar.setStringPainted(true);
            
            for (int i=min; i<=max; i++)
            {
                bar.setValue(i);
                
                if (bar.getPercentComplete()<0.20)
                    bar.setForeground(Color.RED);
                else if (bar.getPercentComplete()<0.60)
                    bar.setForeground(Color.ORANGE);
                else
                    bar.setForeground(Color.GREEN);
                
                Thread.sleep(100);
            }
        }
    }
    0