One issue might be the creating of a new DrawRect object every time the paintComponent() method is called.
Usually you don't want a new object every time. It's better to create the object one time...