Я считаю, что подобные глюки обычно вызваны пользовательскими методами paint()
или не перерисовываются после внесения изменений.
Во-первых, я всегда называю первой строкой в моем собственном методе рисования.
super.paint(); or super.paintComponent(g);
Я также обнаружил, что эти две строки поддерживают все в актуальном состоянии. Они могут занимать много времени, но они решили много проблем. Я обычно помещаю их в конец кода, который изменяет представление.
this.validate();
this.repaint();