我正在编写 Java 应用程序的扩展;它的 API 无法访问应用程序主窗口的位置。我创建了自己的 JFrame,并将该 JFrame 定位为
AwtUtil.centerWindow(jFrameReference);
我希望将 JFrame 放置在主窗口当前位置的顶部,但没有任何对主窗口的引用,我假设我不能这样做。上面的调用似乎将 JFrame 放在我的 Windows 10 计算机上的 #1 显示屏的中心。
但是我还创建了一个带有按钮的弹出 JDialog,我想将其放置在我自己的 JFrame 之上,无论单击按钮时它在哪里。为此,我在对话框的构造函数中放置了对 JFrame 的引用,然后在对话框构造函数中调用:
super(jFrameReference, title, Dialog.ModalityType.APPLICATION_MODEL);
但是如果我移动 JFrame,然后单击按钮弹出对话框,对话框将出现在 JFrame 首次出现的位置,而不是单击按钮时 JFrame 所在的位置。创建对话框时(即显示之前)是否以某种方式保存了 JFrame 的位置?我在这里缺少什么?
calling jDialogReference.setLocationRelativeTo(jFrameReference)
。