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

Pyrrah 129 Messages postés mercredi 16 février 2005Date d'inscription 15 février 2010 Dernière intervention - 8 juin 2009 à 13:46 - Dernière réponse : Pyrrah 129 Messages postés mercredi 16 février 2005Date d'inscription 15 février 2010 Dernière intervention
- 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 

Votre réponse

5 réponses

Meilleure réponse
dje_jay 58 Messages postés mercredi 17 décembre 2003Date d'inscription 16 février 2011 Dernière intervention - 11 juin 2009 à 11:09
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

Merci dje_jay 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 94 internautes ce mois-ci

Commenter la réponse de dje_jay
dje_jay 58 Messages postés mercredi 17 décembre 2003Date d'inscription 16 février 2011 Dernière intervention - 8 juin 2009 à 15:02
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
Pyrrah 129 Messages postés mercredi 16 février 2005Date d'inscription 15 février 2010 Dernière intervention - 8 juin 2009 à 16:58
0
Merci
Pourrais-tu me donner un exemple ?

Pyrrah
H4ck3r vaillant, rien d'impossible.
Commenter la réponse de Pyrrah
manlap 17 Messages postés vendredi 4 janvier 2008Date d'inscription 28 juin 2010 Dernière intervention - 10 juin 2009 à 10:15
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
Pyrrah 129 Messages postés mercredi 16 février 2005Date d'inscription 15 février 2010 Dernière intervention - 13 janv. 2010 à 11:20
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

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.