1. ホーム
  2. java

[解決済み] Java/Swing。JPanel内部からWindow/JFrameを取得する。

2023-08-10 12:19:13

質問

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);