is:
if (x != -100 && y != -100)
setBoundsConstrained (x, y, getWidth(), getHeight());
else
centreWithSize (getWidth(), getHeight());
i think it should be:
if (x != -100 && y != -100)
setBoundsConstrained (Rectangle<int>(x, y, getWidth(), getHeight()));
else
centreWithSize (getWidth(), getHeight());