我希望能根据打开菜单的按钮的y位置设置
我的代码是:
JPopupMenu
的位置。 我的代码在第一个显示器上运行良好,但在第二个显示器上失败,因为它具有不同的高度。
问题在于getLocationOnScreen()
相对于主屏幕提供位置,而不是组件所在的实际屏幕。我的代码是:
// screenSize represents the size of the screen where the button is
// currently showing
final Rectangle screenSize = dateButton.getGraphicsConfiguration().getBounds();
final int yScreen = screenSize.height;
int preferredY;
// getLocationOnScreen does always give the relative position to the main screen
if (getLocationOnScreen().y + dateButton.getHeight() + datePopup.getPreferredSize().height > yScreen) {
preferredY = -datePopup.getPreferredSize().height;
} else {
preferredY = getPreferredSize().height;
}
datePopup.show(DateSpinner.this, 0, preferredY);
如何获取组件在其实际监视器上的位置?