2009-10-14 5 views
11

J'ai un jlabel pour montrer une image générée. Mais cela ne fonctionne que la première fois. Après cela, l'imageicon du jlabel ne change pas. Quel pourrait être le problème?Comment changer l'icône d'un JLabel?

+2

Il est impossible de savoir sans voir le code où vous avez le problème – OscarRyz

Répondre

22

Il est possible que vous ayez deux instances du JLabel. L'une est une variable de classe et l'autre est une variable d'instance qui a été ajoutée à l'interface graphique. Le problème est que votre code met à jour la variable de classe. Ou, peut-être que si vous ne mettez pas à jour l'icône sur l'EDT, vous pourriez avoir des problèmes.

Modifier: Il suffit de relire la question. Si vous parlez d'une "image générée" qui doit être rechargée à partir d'un fichier, vous devez vous débarrasser de l'image mise en cache. Deux façons de le faire:

// Using ImageIO 

String imageName = "timeLabel.jpg"; 
imageLabel.setIcon(new ImageIcon(ImageIO.read(new File(imageName)))); 

// Or you can flush the image 

String imageName = "timeLabel.jpg"; 
ImageIcon icon = new ImageIcon(imageName); 
icon.getImage().flush(); 
imageLabel.setIcon(icon); 

Si vous avez besoin de plus d'aide après votre SSCCE.

+0

ce si je veux mettre à jour l'image de la base de données avec le type blob – Gaurav

2

Je réponds par la seconde qu'il existe une possibilité que vous ayez deux objets d'étiquette distincts.

Une autre possibilité est que vous ayez deux objets icône qui référencent la même image, de sorte que le paramétrer sur l'étiquette ne semble pas affecter.

-1

si vous avez la définition jlabel JLabel label = new JLabel();

je veux dire l'étiquette que vous avez utilisé pour afficher l'image

dans la fonction d'événement, get it sortir

Questions connexes