Herve AGNOUX wrote:

Bonjour,

J'ai une petite fen�tre, dans laquelle il y a un composant au layout null : je
me d�brouille moi m�me pour dessiner ce que je dois y dessiner. Et je dois y
placer des infos venant d'un r�seau, qui arrivent donc de fa�on non-synchrone
par rapport au dispatching thread de awt. Je fais alors religieusement
attention � me re-synchroniser sur ce thread.

A chaque info venant du r�seau, je ne veux pas redessiner tout mon composant,
sinon mes performances vitesses vont s'�crouler. Je calcule le clip concern�,
et j'envoie le repaint. Je suis bien oblig� de trouver le clip avant d'entrer
dans le dispatching thread, puisque les m�thodes de la famille "paint" ont ce
clip en param�tre, dans le contexte graphique.

Manque de bol, pour calculer le clip, j'ai besoin de la taille de mon
composant. Or cette info risque d'�tre modifi�e pendant le dispatching thread
: si jamais l'utilisateur � la mauvaise id�e de modifier la taille de ma
fen�tre juste au moment o� il arrive quelque chose du r�seau, tout est foutu
; donc, pour l'avoir, je devrais d�j� me synchroniser sur lui. Mais je suis
justement dans une phase o� je ne me suis pas encore synchronis� : je calcule
le clip. Mais, pour avoir ce clip...

Bref savez-vous comment je peux m'en sortir ?
post ton code dans la queue d'�v�nement avec
SwingUtilities.invokeAndWait() ou invokeLater()
comme ca tu peut fait des paintImmediately().

Remi





Répondre à