Rafraichir/Mettre à jour image dans JPanel [Résolu]

z980x 898 Messages postés jeudi 6 juin 2002Date d'inscription 26 juillet 2007 Dernière intervention - 27 déc. 2006 à 23:21 - Dernière réponse : cs_neone 96 Messages postés mercredi 23 novembre 2005Date d'inscription 7 mars 2011 Dernière intervention
- 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
Afficher la suite 

11 réponses

Répondre au sujet
Twinuts 5261 Messages postés dimanche 4 mai 2003Date d'inscription 20 avril 2018 Dernière intervention - 28 déc. 2006 à 16:15
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Twinuts
Twinuts 5261 Messages postés dimanche 4 mai 2003Date d'inscription 20 avril 2018 Dernière intervention - 28 déc. 2006 à 02:24
0
Utile
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
Commenter la réponse de Twinuts
z980x 898 Messages postés jeudi 6 juin 2002Date d'inscription 26 juillet 2007 Dernière intervention - 28 déc. 2006 à 09:14
0
Utile
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
Commenter la réponse de z980x
sheorogath 2465 Messages postés samedi 21 février 2004Date d'inscription 29 janvier 2010 Dernière intervention - 28 déc. 2006 à 12:31
0
Utile
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"
Commenter la réponse de sheorogath
z980x 898 Messages postés jeudi 6 juin 2002Date d'inscription 26 juillet 2007 Dernière intervention - 28 déc. 2006 à 13:25
0
Utile
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
Commenter la réponse de z980x
sheorogath 2465 Messages postés samedi 21 février 2004Date d'inscription 29 janvier 2010 Dernière intervention - 28 déc. 2006 à 13:31
0
Utile
/*************************/


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"
Commenter la réponse de sheorogath
z980x 898 Messages postés jeudi 6 juin 2002Date d'inscription 26 juillet 2007 Dernière intervention - 28 déc. 2006 à 13:47
0
Utile
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
Commenter la réponse de z980x
sheorogath 2465 Messages postés samedi 21 février 2004Date d'inscription 29 janvier 2010 Dernière intervention - 28 déc. 2006 à 13:50
0
Utile
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"
Commenter la réponse de sheorogath
z980x 898 Messages postés jeudi 6 juin 2002Date d'inscription 26 juillet 2007 Dernière intervention - 28 déc. 2006 à 14:35
0
Utile
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
Commenter la réponse de z980x
z980x 898 Messages postés jeudi 6 juin 2002Date d'inscription 26 juillet 2007 Dernière intervention - 28 déc. 2006 à 17:10
0
Utile
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
Commenter la réponse de z980x
cs_neone 96 Messages postés mercredi 23 novembre 2005Date d'inscription 7 mars 2011 Dernière intervention - 4 juin 2007 à 18:28
0
Utile
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
Commenter la réponse de cs_neone

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.