paintComponent : conflit entre superposition d'image et repaint() d'images
Bonjour,
le titre n'est pas facile à trouver pour ce sujet...
J'ai créé une carte interactive qui utilise la superposition d'images.
Chaque image est un object de la classe Item.
Pour mener à bien la superposition d'images Item, j'ai du utilisé un override de paintComponent() dans une autre classe (Interface.java) puique rien d'autre ne marchait (utiliser des JLabel par exemple, ...).
Dans cette nouvelle methode paintComponent, j'appel la fonction DrawItem de la classe Item qui dessinera l'image souhaitée grâce à drawImage().
voici le code :
Code:
1 2 3 4 5 6 7 8 9 10
|
public void paintComponent(Graphics g)
{
super.paintComponent(g); //pour empêcher les images avec les "anciennes" propriétés (position notamment) de se redessiner
for(int i = 0; i < vItem.size(); i++)
{
vItem.elementAt(i).DrawItem(g);
}
} |
tout ceci fonctionne parfaitement, le souci est que lorsque je fait un repaint() dans un autre endroit du code, cette fonction paintComponent est appelée, et du coup redessine TOUTES les images (vItem.elementAt(i))...
Du coup, lorsque je fais des mouseDragged, ça ralentit consédérablement les mouvements...
J'espère que vous saurez m'aider à résoudre ce problème...