Probleme UImanager

cs_def95 Messages postés 11 Date d'inscription jeudi 13 avril 2006 Statut Membre Dernière intervention 23 juin 2006 - 22 juin 2006 à 15:16
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 - 22 juin 2006 à 15:46
Bonjour, j'ai un probleme au niveau du UImanager :

J'ai creé une classe TimerBar qui hérite de JProgressBar et je souhaite pôuvoir changer la couleur de la ProgressBar lorsque je le souhaite. En fait dans mon programme, il y a 2 progressBar et en fonction des evenements l'une est fonctionne et l'autre est arretée. Je voudrai que que lorsque la barre est selectionnée elle s'affiche en bleu et lorsque'elle est deselectionnée en gris.
Dans le constructeur je les defini toute les 2 en noirs mais des leur creation, une seule s'affiche en noir, l'autre a sa couleur d'origine.
Est ce que vous pourriez me donner plus d'information sur le fonctionnement de UIMANAGER et aussi, si quelqu'un sait ce que veux dire la ligne static final long serialVersionUID = 42L; que j'ai du recopier de la doc JProgressBar pour que sa compile.

merci d'avance pour vos reponses.....

import javax.swing.*;

import java.awt.Color;
import java.awt.*;

public class TimerBar extends JProgressBar{

    static final long serialVersionUID = 42L;
   
    public TimerBar(int time){
        super(0,time);
        super.setValue(time);
        UIManager.put("ProgressBar.foreground",Color.black);
    }
       
    public void decrease (){
        super.setValue(super.getValue()-10);
    }
 
    public void setActionColor(boolean inAction){
        if(inAction){
            UIManager.put("ProgressBar.foreground",Color.gray);
        }
        else {
            UIManager.put("ProgressBar.foreground",Color.blue);
        }
    }

}

2 réponses

cs_def95 Messages postés 11 Date d'inscription jeudi 13 avril 2006 Statut Membre Dernière intervention 23 juin 2006
22 juin 2006 à 15:43
je rajoute que quand je cree mes timerBar
 celle qui va s'afficher en noir  est la derniere cree.
        TimerBar timer1=new TimerBar(600000);
        TimerBar timer2=new TimerBar(600000);
        JPanel panel1=new JPanel();
        JPanel panel2=new JPanel();
        panel1.add(timer1);
        panel2.add(timer2);
        window.getContentPane().add(panel2,BorderLayout.SOUTH);
        window.getContentPane().add(panel1,BorderLayout.NORTH);
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
22 juin 2006 à 15:46
Salut,


UIManager va mettre la meme couleur a toutes les progress barre de ton
code aplli si tu veux vraiment avoir une couleur différente par
progress barre il te faut redefinir son UI soit redefinir
BasicProgressBarUI et l'ajouter exemple :


public class MProgressBarUI extends BasicProgressBarUI{

    //............ tt plein de code :P

}


JProgressBar jpb = new JProgressBar();

jpb.setUI(new MProgressBarUI());

On n'est pas des traiteurs : on ne fait pas dans les plats tout cuits ...

WORA
0
Rejoignez-nous