To talk about erdelfs post about a more precise location setter, you're not really using exactX or exactY. You actually must add their getters:
or just remove them: they're not used anywhere except for in setLocation
public double getExactX() { return exactX; } public double getExactY() { return exactY; }