Rafraichir/Mettre à jour image dans JPanel

Résolu
z980x Messages postés 897 Date d'inscription jeudi 6 juin 2002 Statut Membre Dernière intervention 26 juillet 2007 - 27 déc. 2006 à 23:21
cs_neone Messages postés 96 Date d'inscription mercredi 23 novembre 2005 Statut Membre Dernière intervention 7 mars 2011 - 4 juin 2007 à 18:28
Bonjour à tous,

j'aimerais savoir comment faire pour mettre à jour l'image affichée dans un JPanel.
En effet, je télécharge une image sur internet, et elle change toutes les secondes. J'aimerais donc la mettre à jour dans le JPanel.
J'ai lu plein de posts à ce sujet, dont les réponses sont toujours de faire revalidate ou repaint mais ca ne marche pas...
J'ai donc besoin de votre aide !

Voila actuellement le code que j'utilise pour afficher l'image, suite à un clic de souris:

pan.getGraphics().drawImage(getToolkit().getImage("capture.jpg"), 0, 0,this);

Comment faire??

Merci !

Philippe
A voir également:

11 réponses

z980x Messages postés 897 Date d'inscription jeudi 6 juin 2002 Statut Membre Dernière intervention 26 juillet 2007 2
28 déc. 2006 à 14:35
Non non, elle existe bel et bien, ca c'est sur... Je la retélécharge à chaque clic de souris. (Et elle change, ca c'est sur), mais est ce que le getToolkit().getImage("capture.jpg") recharge vraiment l'image???

Merci

Philippe
1
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
28 déc. 2006 à 16:15
Salut,

au pire arrete de te stresser avec les JPanel et mets ton image dans un jlabel et te prends pas la tete avec les repaints ils seront fait auto des que tu changera l'image...

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
1
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
28 déc. 2006 à 02:24
Salut,

tu as essayé la methode pan.repaint();

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
0
z980x Messages postés 897 Date d'inscription jeudi 6 juin 2002 Statut Membre Dernière intervention 26 juillet 2007 2
28 déc. 2006 à 09:14
Salut,

tout d'abord, merci pour ta réponse.

Quand je fais ca:
pan.getGraphics().drawImage(getToolkit().getImage("capture.jpg"), 0, 0,this);
pan.repaint();

l'image apparait une fraction de seconde et disparait... Impossible donc de vérifier si ca marche...

Comment faire? Faut t-il que je redéfinisse la méthode repaint()? Si oui, je mets quoi dedans?? (J'ai essayé un super.paintAllComponents(getGraphics()) mais ca revient au même...

Merci
0

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

Posez votre question
sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 17
28 déc. 2006 à 12:31
ta plein de code qui te permettent de redefinir la classe JPanel pour y afficher une image
dans un des mien pour le package de creation de map va voir du coter swing ta une classe JPanelImage il me semble

ou alors une solution qu'avaisproposer twinuts c'est d'utiliser un JLabel

"n'est pas mort ce qui semble a jamais dormir et en d'etrange temps meme la mort peut mourrir"
0
z980x Messages postés 897 Date d'inscription jeudi 6 juin 2002 Statut Membre Dernière intervention 26 juillet 2007 2
28 déc. 2006 à 13:25
Salut,

pourrais tu me donner un exemple de code pour la redéfinition de la classe JPanel?
Pour le JLabel, je viens d'essayer, et ca fait exactement pareil qu'avec le panel...

Merci

Philippe
0
sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 17
28 déc. 2006 à 13:31
/*************************/


import java.awt.Graphics;
import java.awt.Image;


import javax.swing.JPanel;


public class JPanelImage extends JPanel {
 public Image img;


 public void setImage(Image img) {
  this.img = img;
  repaint();
 }


 public void paintComponent(Graphics g) {
  super.paintComponent(g);
  if (img != null) {
   g.drawImage(img, 0, 0, null);
  }
 }


 public Image getImage() {
  return img;
 }
}

/*****************/

"n'est pas mort ce qui semble a jamais dormir et en d'etrange temps meme la mort peut mourrir"
0
z980x Messages postés 897 Date d'inscription jeudi 6 juin 2002 Statut Membre Dernière intervention 26 juillet 2007 2
28 déc. 2006 à 13:47
Merci pour le code, mais ca marche toujours pas...

pan.setImage(getToolkit().getImage("capture.jpg"));

J'ai même essayé: pan.setIcon(new ImageIcon("capture.jpg")); (en le mettant en JLabel), mais rien n'y fait !

Est ce que c'est possible que le code getToolkit().getImage("capture.jpg") ne renvoie pas un bon truc??? Je voudrais dire par la, si l'image a le même nom, il ne fait pas la mise à jour?

Merci à vous

Philippe
0
sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 17
28 déc. 2006 à 13:50
ben ouai si l'image n'existe pas ca va pas marcher ...

"n'est pas mort ce qui semble a jamais dormir et en d'etrange temps meme la mort peut mourrir"
0
z980x Messages postés 897 Date d'inscription jeudi 6 juin 2002 Statut Membre Dernière intervention 26 juillet 2007 2
28 déc. 2006 à 17:10
Ah... Je l'ai fait avec un JLabel... et en fait, le seul truc qui fonctionne, c'est en changeant le nom du fichier... J'ai changé le nom du fichier en mettant l'heure et la date, et la ca va...

Merci bcp !

Philippe
0
cs_neone Messages postés 96 Date d'inscription mercredi 23 novembre 2005 Statut Membre Dernière intervention 7 mars 2011
4 juin 2007 à 18:28
salut,
j'ai pas bien pigé tu ve raffraichir l'image ou changer d'image suite a une action??.
si je comprend bien je pe t'aider boncourage
0
Rejoignez-nous