Innanzitutto il posizionamento per il trascinamento non è corretto. Se "prendi" il pezzo in un punto in mezzo, trascinandolo il cursore deve restare su quel punto. Quindi devi lavorare in modo "relativo" con le posizioni.Originariamente inviato da Kalaz_89
Se andate sul sito nel quale ho caricato l'applet vedrete che ogni volta che si trascina il pezzo si vede che la pagina si aggiorna. Come posso risolvere questo problema?
Poi comunque vedo che certi pezzi trascinati passano "sotto" e altri "sopra" altri pezzi. Cosa brutta/dubbia. E per questo bisogna vedere la sequenza di painting.
E per la questione del "flickering" (si chiama così quel difetto) bisogna sfruttare il "double-buffering". O lo fai tu (con una immagine off-screen che poi butti a video) .... o lo fai fare a Swing. Con JPanel ad esempio puoi sfruttare di serie il double-buffering. E che tra l'altro, fare ad esempio un tuo componente es. PannelloScacchi che estende JPanel sarebbe una soluzione saggia (dal punto di vista del design).
P.S. fare il repaint di per sé è corretto. Come ottimizzazione potresti chiedere il repaint solo per l'area che è la "unione" del rettangolo vecchio+rettangolo nuovo.