Mettre à jour une image dans un JLabel

Résolu
Pyrrah Messages postés 127 Date d'inscription mercredi 16 février 2005 Statut Membre Dernière intervention 15 février 2010 - 8 juin 2009 à 13:46
Pyrrah Messages postés 127 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.

5 réponses

dje_jay Messages postés 58 Date d'inscription mercredi 17 décembre 2003 Statut Membre Dernière intervention 16 février 2011 2
11 juin 2009 à 11:09
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
3
dje_jay Messages postés 58 Date d'inscription mercredi 17 décembre 2003 Statut Membre Dernière intervention 16 février 2011 2
8 juin 2009 à 15:02
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...
0
Pyrrah Messages postés 127 Date d'inscription mercredi 16 février 2005 Statut Membre Dernière intervention 15 février 2010 4
8 juin 2009 à 16:58
Pourrais-tu me donner un exemple ?

Pyrrah
H4ck3r vaillant, rien d'impossible.
0
manlap Messages postés 17 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 28 juin 2010
10 juin 2009 à 10:15
Bonjour,

pourquoi ne pas utiliser la méthode setIcon de JLabel

JLable imgStatus = new JLabel();
imgStatus.setIcon(status);
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Pyrrah Messages postés 127 Date d'inscription mercredi 16 février 2005 Statut Membre Dernière intervention 15 février 2010 4
13 janv. 2010 à 11:20
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 !
0
Rejoignez-nous