Problème de type avec Graphics

cs_Kaktus Messages postés 8 Date d'inscription dimanche 7 décembre 2003 Statut Membre Dernière intervention 20 juin 2004 - 2 juin 2004 à 10:44
dmaillet Messages postés 500 Date d'inscription mercredi 20 août 2003 Statut Membre Dernière intervention 11 juillet 2007 - 2 juin 2004 à 13:13
Bonjour à tous, voilà mon problème :
je cherche à dessiner des pièces d'un jeu d'échec par la méthode drawImage sur un JLabel qui contient l'image de l'échiquier.
Or, il est impossible d'appliquer la méthode drawImage sur un JLabel (incompatibilité avec le type Graphics qui est le support normal de la méthode drawImage).
Comment faire ?
Merci d'avance.

9 réponses

dmaillet Messages postés 500 Date d'inscription mercredi 20 août 2003 Statut Membre Dernière intervention 11 juillet 2007
2 juin 2004 à 10:54
Hein?
Pourquoi tu as mis l'image de ton echiquier dans un JLabel?
Pourquoi utiliser ce composant alors qu'un panel suffit...
Tu ferais mieux de mettre tes images dans un JPanel, et ainsi tu pourrais faire des Draw images en recuperant le graphics de ton panel...
-------------------
>:) dams >:)
-------------------
0
cs_Kaktus Messages postés 8 Date d'inscription dimanche 7 décembre 2003 Statut Membre Dernière intervention 20 juin 2004
2 juin 2004 à 10:56
En fait c'est un erreur de frappe. Désolé j'ai bien mis l'échiquier dans un JPanel mais je ne sais pas comment appliquer draw dessus, ou même comment récupérer l'image qu'il contient.
0
dmaillet Messages postés 500 Date d'inscription mercredi 20 août 2003 Statut Membre Dernière intervention 11 juillet 2007
2 juin 2004 à 11:09
tu redefini la methode paint de ton JPanel
exemple:

public void paint(Graphics g) {
//la tu mets tes differents drow image, ou tout autre dessins
super.paint(g);
}
-------------------
>:) dams >:)
-------------------
0
cs_Kaktus Messages postés 8 Date d'inscription dimanche 7 décembre 2003 Statut Membre Dernière intervention 20 juin 2004
2 juin 2004 à 11:23
Le truc que je ne comprends pas, c'est sur quoi appliquer ma méthode paint(Graphics g). Cette méthode contient le tracé des pièces. Je veux appliquer ça sur mon échiquier donc en gros je voudrais faire un paint(échiquier), mais le problème c'est que l'échiquier est un JPanel et la méthode paint ne veut pas s'appliquer dessus.
0

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

Posez votre question
dmaillet Messages postés 500 Date d'inscription mercredi 20 août 2003 Statut Membre Dernière intervention 11 juillet 2007
2 juin 2004 à 11:36
c'est normal, paint est une methode interne de tout composant,
qui est appele lorsqu'il y a une mise a jour de l'affichage...
si tu veux l'appeler, il suffit de faire un repaint de ton JPanel, en interne il enverra le graphics vers paint()

jpanel.repaint() ->appel paint(Graphics g)
-------------------
>:) dams >:)
-------------------
0
cs_Kaktus Messages postés 8 Date d'inscription dimanche 7 décembre 2003 Statut Membre Dernière intervention 20 juin 2004
2 juin 2004 à 11:41
Merci je commence à mieux comprendre.
Néanmoins, j'ai toujours le problème du type Graphics : comment transformer mon échiquier (initialement de type JPanel) en un type Graphics. Car il faut bien que je précise un jour qui est ce Graphics g...où et comment ? :o)
0
cs_Kaktus Messages postés 8 Date d'inscription dimanche 7 décembre 2003 Statut Membre Dernière intervention 20 juin 2004
2 juin 2004 à 11:42
Non en fait ma question est con...désolé.
Merci encore.
Ca devrait aller maintenant.
;o)
0
cs_Kaktus Messages postés 8 Date d'inscription dimanche 7 décembre 2003 Statut Membre Dernière intervention 20 juin 2004
2 juin 2004 à 12:16
Juste encore un truc : je suis obligé de faire une classe spéciale pour mon échiquier qui sera "extends JPanel" et dans laquelle je vais redéfinir paint() et mettre mes méthodes de dessin, non ?
Ou puis-je inclure ces méthodes dans ma classe interface où j'ai déjà défini tout ce qu'il y a autour de l'échiquier ?
0
dmaillet Messages postés 500 Date d'inscription mercredi 20 août 2003 Statut Membre Dernière intervention 11 juillet 2007
2 juin 2004 à 13:13
Comme tu veux, mais dans tous les cas, tu devras reecrire les methodes en internes,
la 1ere solution est bien sur la plus propre...
-------------------
>:) dams >:)
-------------------
0
Rejoignez-nous