Guarda, io ho fatto una cosa simile e ti dico che posizione e dimensioni della popup (che io ho implementato estendendo JDialog) le setto così:
Codice PHP:
int popupWidth = getTextField().getWidth();
int popupHeight = 170; //valore fisso nel mio caso
int popupLocationX = getTextField().getLocationOnScreen().x;
int popupLocationY = getTextField().getLocationOnScreen().y + getTextField().getHeight();
setPreferredSize(new Dimension(popupWidth, popupHeight));
setLocation(popupLocationX, popupLocationY);
credo che tu possa adattarlo al caso tuo.