[DESSIN] String sur une image (Mauvaise Comprehension)
Bonjour,
Tout d'abord je tiens a dire que j'ai chercher du coté de la faq et sur le site mais j'ai un probleme de compréhension.
Bon voila en fait je fais un pacman actuellement et je voudrais afficher le string "Pause" lorsque l'on déclenche une pause.
Pour dessiner le labyrinthe plus les personnages j'ai redefini la méthode paint de mon composant graphics (Jpanel).
Voici la méthode paint() :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| public void paint(Graphics g) {
// Pour faire du double-buffering
if (graph == null){
Dimension taille = Toolkit.getDefaultToolkit().getScreenSize();
img = createImage(taille.width, taille.height);
graph = img.getGraphics();
}
// Effacement de l'ecran
graph.setColor(Color.BLACK);
graph.fillRect(0, 0, getWidth(), getHeight());
this.laby.dessiner(graph);
this.pac.dessiner(graph);
for(int i=0;i<super.listeFantome.size();i++)
{
((Fantome) super.listeFantome.get(i)).dessiner(graph);
}
// Affichage de l'image
g.drawImage(img,0,0,this);
} |
Voila bon tous ce passe bien l'image est correctement affichée et elle est rafraichie par un thread .
Lors de l'action pause je stop tous les threads des personnages.
Jusque la tout fonctionne bien.
Maintenant je voudrais afficher "pause" lorsque je declenche l'action pause.
Pour cela j'ai besoin d'accéder au composant graphics et je ne souhaite pas modifier le code de paint().
je c que je dois mettre ca comme code :(selon la faq java)
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
public void gestionPause()
{
pause=!pause;
if(pause)
{
/** Ecriture dans une image 'img' */
Graphics2D g2d = (Graphics2D)img.getGraphics();
g2d.drawString("HelloWord",x,y);
}
} |
Voici mon thread :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| public void run() {
while (t == Thread.currentThread()) {
if(!pause)
{
try {
this.repaint();
this.gestionEtatSpecial();
this.gestionRencontre();
Thread.sleep(50);
} catch (InterruptedException e) {
e.printStackTrace();
break;
}
}
}
} |
mais ca marche pas.
Je crois que ca se voit bien que je comprend pas trop la logique de l'affichage puisque je n'arrive pas m'expliquer clairement...
Merci d'avance !;)[/i]