Mettre à jour une image dans un JLabel [Résolu]

Messages postés
129
Date d'inscription
mercredi 16 février 2005
Statut
Membre
Dernière intervention
15 février 2010
- - Dernière réponse : Pyrrah
Messages postés
129
Date d'inscription
mercredi 16 février 2005
Statut
Membre
Dernière intervention
15 février 2010
- 13 janv. 2010 à 11:20
Bonjour,

Je souhaiterais mettre à jour une image contenu dans un JLabel.
Voici mon code :

  ImageIcon status = new ImageIcon("chemin/vers/images/open_"+ fileReader.getStatus_file() +".png");
  imgStatus = new JLabel(status);
  buttonPanel.add(imgStatus);

Je sèche là... aidez-moi. Merci.

Pyrrah
H4ck3r vaillant, rien d'impossible.
Afficher la suite 

5 réponses

Meilleure réponse
Messages postés
58
Date d'inscription
mercredi 17 décembre 2003
Statut
Membre
Dernière intervention
16 février 2011
1
3
Merci
Sorry pour la réponse aussi tardive.(J'étais chez le client)...

//Class héritière
public class LblImage  extends javax.swing.JLabel
{
  private int msOrgX=0,msOrgY=0,msDstX=0,msDstY=0,OrgPosXImg,OrgPosYImg;
//ta toutouille sur l'image

  private Image Img;

    public void setImage(Image image)
    {
        Img=image;
    }

    //rafraichissement de l'image du LBL
    public void paint(Graphics g)
    {
//traitement à l'affichage a faire ici
        g.drawImage(Img, 0,0,this);
    }

}

Appel :
J'ai une JFrame contenant 2 JScrollPane(SCP_TRUC) à l'interieur desquels j'ai mis les LblImage (txtImg)...

Si je passais directement par les JLabel j'avais un problème pour le rafraichissement lors du 2°appel de conversion (Convert - qui détecte la peau - je mettrai cette source en ligne un de ces 4)...

//init
    JFileChooser JFC_File = new JFileChooser();
    LblImage txtImg1;
    LblImage txtImg2;
    BufferedImage biO = null;
    BufferedImage biM = null;
        SCP_Main.setViewportView(txtImg1);
        SCP_Mod.setViewportView(txtImg2);

...
//ouverture de l'image à traiter
             File imgfile = JFC_File.getSelectedFile();
                biO = ImageIO.read(imgfile);

                //Afficher l'image
                txtImg1.setImage(new ImageIcon(biO).getImage());
                txtImg1.setIcon(new ImageIcon(biO));

...
//appel de l'action de conversion de l'image
        biM = new BufferedImage(biO.getWidth(), biO.getHeight(), biO.getType());

        convert();
       
        txtImg2.setImage(new ImageIcon(biM).getImage());
        txtImg2.setIcon(new ImageIcon(biM));

        SCP_Mod.setViewportView(txtImg2);

En espérant que ça aide...

DJe

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 201 internautes nous ont dit merci ce mois-ci

Commenter la réponse de dje_jay
Messages postés
58
Date d'inscription
mercredi 17 décembre 2003
Statut
Membre
Dernière intervention
16 février 2011
1
0
Merci
Passes par une class qui hérite de JLabel.
Ca te permettra de mettre des trucs dans la methode repaint();
Quand tu travailles comme ça, ça marche...
Il y a peut-être plus efficace, mais je ne connais pas...
Commenter la réponse de dje_jay
Messages postés
129
Date d'inscription
mercredi 16 février 2005
Statut
Membre
Dernière intervention
15 février 2010
4
0
Merci
Pourrais-tu me donner un exemple ?

Pyrrah
H4ck3r vaillant, rien d'impossible.
Commenter la réponse de Pyrrah
Messages postés
17
Date d'inscription
vendredi 4 janvier 2008
Statut
Membre
Dernière intervention
28 juin 2010
0
Merci
Bonjour,

pourquoi ne pas utiliser la méthode setIcon de JLabel

JLable imgStatus = new JLabel();
imgStatus.setIcon(status);
Commenter la réponse de manlap
Messages postés
129
Date d'inscription
mercredi 16 février 2005
Statut
Membre
Dernière intervention
15 février 2010
4
0
Merci
Bonjour,

Désolé pour la lenteur de ma réponse.
Cela m'a bien servi ;)

Amicalement,
Pyrrah.

____________________
Pyrrah
H4ck3r vaillant, rien d'impossible.
Si le problème est résolu, n'oubliez pas de cliquer sur "Problème résolu !". Merci !
Commenter la réponse de Pyrrah