У меня есть другое решение этой проблемы.Вы можете вызвать метод show () дважды.
После первого вызова метода будут инициализированы свойства измерения, во второй раз вы увидите всплывающее меню в нужном месте.Вот пример:
Я хочу отобразить меню рядом с кнопкой, чтобы сделать это, мне нужно знать ширину всплывающего меню
Если я вызываю menu.getWidth ()в первый раз он вернет 0 после первого вызова и вернет значение, занятое во всплывающем меню;
int firstX = refreshButton.getLocation().x;
int firstY = refreshButton.getLocation().y;
menu.show(toolBar, firstX, firstY);
menu.show(toolBar, firstX - menu.getWidth(), firstY);