Java / Swing:从JPanel中获取Window / JFrame

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (14)

如何获得JPanel所在的JFrame?

我目前的解决方案是询问面板的父级(等等),直到找到一个窗口:

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);
用户回答回答于

扫码关注云+社区