Bonjour,

Alors comment l'expliquer simplement celui la

j'ai implémenté un composant Cellule (n'héritant de rien), relié a un component (en fait le container servant a afficher ma cellule).

grace a ce container, j'arrive a déterminer quand la souris rentre, sort, bouge etc dans ma cellule, donc j'ai définis un addMouseMotionListener et un addMouseListener sur ma cellule. comme ca je localise plus finement.

dans la methode paint de ma cellule (cette méthode sera appelé dans le paint du component contenant ma cellule), je dessine, un ou 2 rectangle, un string, une ou 2 images, etc...bref rien de bien mechant (tout ca sur 100 x 100 pixels, pour donner une idée). A tout ca j'applique un affine transform pour zoomer la cellule.

bref voila pour ma cellule, en gros un objet qui dessine un rectangle dont la taille peut varier si on le paramètre pour que ca varie et auquel on peut s'abonner aux evenements souris.

ensuite dans un JPanel, je décide de dessiner une de mes cellules, donc je redefini le paint en appelant le paint de ma cellule
result...paf nickel ca marche

j'ajoute les mouse listener qu'il faut a ma cellule, et je decide que quand la souris rentre dedans (la cellule) , je fais varier l'echelle pour le zoom (plus on s'approche du centre plus c'est gros, jusqu'a 2 fois la taille initiale). Ca rend un peu comme l'effet du Dock sous mac OS.

a l'affichage ca marche nickel...

bref ca marche bien, je rajoute une autre cellule pour voir le comportement, ca marche bien, 8 cellules aussi, 100 ca commence a ralentir, 400 ca zoom plus vraiment, faut vraiment bouger la souris tres lentement.

donc c'est trop lent, et j'aimerais savoir si y a pas une technique algorithmique pour calculer tout ca plus vite.

parce qu'en gros j'ai 400 cellules qui ont toutes les evenements sur la souris...
et quand une cellule capte le bon evenement, bah elle appele la updateUI du JPanel.

la methode paint du JPanel elle, boucle sur le tableau de cellule et appele le paint de chacune. Je l'ai mis en doubleBuffered, mais ca reste trop lent.

une idée ?