Java / Swing:从JPanel内部获取Window / JFrame

我如何获得JPanel所在的JFrame?

我当前的解决方案是询问面板的父面板(依此类推),直到找到Window:

Container parent = this; // this is a JPanel

do {

parent = parent.getParent();

} while (!(parent instanceof Window) && parent != null);

if (parent != null) {

// found a parent Window

}

标准库中有没有一种更优雅的方法?

回答:

您可以使用SwingUtilities.getWindowAncestor(...) 将返回可转换为顶级类型的Window的方法。

JFrame topFrame = (JFrame) SwingUtilities.getWindowAncestor(this);

以上是 Java / Swing:从JPanel内部获取Window / JFrame 的全部内容, 来源链接: utcz.com/qa/400657.html

回到顶部