Bonjour,
J'ai un bout de codes qui doit faire apparaître successivement un dessin toujours à la même place : Le dessin précédent laisse la place un autre en fonction d'une action sur un bouton.
Depuis une classe Tester, passe en argument à une classe Photo, ne nom de l'image à dessiner si ce dernier existe, et le message pour dire que le dessin n'existe pas.
Ainsi dans Tester, j'ai
if(photoEtudiant!=null) container.add(new Photo(photoEtudiant,null), contraintes);
else container.add(new Photo(null, message),contraintes);
le code Photo se présente ainsi :
import javax.swing.*;
import java.awt.*;
class Photo extends JPanel
{
String nomPhoto=null;
String message=null;
Image image=null;
static int i=0;
public Photo(String _nomPhoto, String _message)
{
MediaTracker trackerPhoto=null;
nomPhoto=_nomPhoto;
message=_message;
if(nomPhoto!=null)
{
image = Toolkit.getDefaultToolkit().getImage(nomPhoto);
trackerPhoto = new MediaTracker(this);
trackerPhoto.addImage(image,0);
try
{
trackerPhoto.waitForID(0);
}
catch(InterruptedException exception)
{
System.out.println("Echec du pisteur");
System.exit(0);
}
}
}
public void paintComponent(Graphics g)
{
super.paintComponent(g);
if(nomPhoto!=null) g.drawImage(image, 0, 0, getWidth(), getHeight(), this);
else
{
Graphics2D g2 = (Graphics2D)g;
Font fonte = new Font("Century Gothic",Font.PLAIN,14);
g2.setFont(fonte);
g2.setPaint(Color.blue);
g.drawString(message,0,10);
}
}
}
mahleureusement, c'est toujours la même photo qui s'affiche (pas de rafraîssiment de la fenêtre). Comment et où dois-je utiliser la procédure repaint() afin d'avoir un raifraissement de la fenêtre ?
Merci par avance pour vos propositiosn de solution.