Mi sfugge un'altra cosa sui Rettangoli creati in questo modo.
Se io imposto queste coordinate:
rect.set(100,50, 200,100);
rect2.set(100,200,200,250);
Ottengo due rettangoli di altezze differenti, anche se in entrambi la differenza tra top e bottom è comunque di 50 pixel.
Edit: Forse il problema nasce dal metodo che utilizzo per disegnare i Rettangoli ovvero g.drawRect.
g.drawRect vuole in input (x, y, width, height, color)
Dovrei utilizzare x= left, y= top, width = right-left; height= bottom-top ?