This question already has answers here:
Java/Swing: Obtain Window/JFrame from inside a JPanel

(4个答案)


6年前关闭。




我可以继续使用每个父母的getParent()遍历他们的父母,直到我找到一个共享的父母或为null,但这似乎是一个糟糕的解决方案,是否有更好的方法?

基本上我的用例是在FocusLost()上的FocusListener中,我想知道我是否正在失去对框架之外的东西的关注...

最佳答案

您可以比较以下结果:

SwingUtilities.windowForComponent(comp1).equals(SwingUtilities.windowForComponent(comp2))


SwingUtilities.getWindowAncestor(comp1).equals(SwingUtilities.getWindowAncestor(comp2))


SwingUtilities.getRoot(comp1).equals(SwingUtilities.getRoot(comp2))

09-11 18:08