si capisco cosa intendi, ma alla fine dello storpiamento il disegno viene visualizzato giusto o resta deformato? Potresti provare ad usare il doppio buffering, quindi metti un listener sullo spostamento delle barre e prima di disegnare sul Graphics del paintComponent disegni su un Image di buffer appunto.
Se la causa è proprio un freez potresti separare il processo di disegno in un altro thread.
Ci vorebbe qualche utente che ha fatto più esperienza con swing e magari conosca qualche trucco del mestiere.
![]()