PDA

View Full Version : [Java] Sincronizzare mousedrag e repaint()


PGI
30-09-2003, 15:03
La domanda è semplice, come si fa?

Dovrei sincronizzare l'evento "drag del mouse" con il metodo "repaint" di un JPanel, per far in modo che il movimento del mouse attenda che un'immagine sia aggiornata.

E' in pratica lo stesso effetto che si vede con un oggetto JSlider: il movimento del mouse è sincrono con il movimento del nodo (che è appunto un oggetto "disegnato" in un metodo paint).

Grassie.

PGI
04-10-2003, 16:36
Calma ragazzi, non fate a cazzotti per rispondere! :D

Il problema (credo) stà nel fatto che i thread degli eventi AWT sono asincroni. Dichiarare un metodo o un blocco come "syncronized" non ha effetto.

Ho provato ad impostare a MAX_PRIORITY il thread corrente, ma l'awt se ne frega (perchè la priorità ha effetto sui thread appartenenti al gruppo corrente? Stando all'effetto parrebbe così).

Ho decompilato (ma negherò tutto) alcune classi relative agli oggetti JSlider ma non ho capito come funziona la faccenda...

aiuto...

Ciao.

cn73
06-10-2003, 15:20
Ti può essere utile questo link? http://java.sun.com/docs/books/tutorial/uiswing/overview/threads.html

E la famosa utilty SwingWorker??

PGI
07-10-2003, 15:24
Grazie per il link, ho provato ad usare il safe-thread SwingWorker e singolarmente il metodo invoke-and-wait, solo che non "congela" il thread awt che gestisce il movimento del mouse.

Mah!