Add you label to the NORTH of a BorderLayout and the custom panel to the CENTER. All the extra space will go to the CENTER. The size of the component is known in the paintComponent() method. Since
you should be drawing the circle in the paintComponent() method there shold be no problem to do what you want.
Post your
SSCCE demonstrating the problem.