5

私のSwingアプリで。私はJFrameいくつかありJPanelsます。そのうちの1つは、別のパネルを配置するために使用します。そして、これらの1つ(別のパネル)はを呼び出しますJDialog。ダイアログのコンストラクターはFrameStringおよびBooleanをパラメーターとして受け入れます。私の問題は、このパネルから親(フレーム)を取得する方法です。

SwingUtilities.windowForComponent(...)私の場合は機能しSwingUtilities.getWindowAncestor(...)ません。パラメーターのないコンストラクターはオプションではありません。

4

2 に答える 2

9

すべてのJComponentは、メソッドgetParent()をサポートしています。メソッドの名前が示すように、このコンポーネントの親への参照を返します。JDialog、JPanel、JFrameなどはJComponentのサブクラスであるため、ケースで使用できます。ただし、型キャストを実行する必要があることに注意してください。例:

JFrame parentFrame = (JFrame) myContenPane.getParent()

また、レイアウトによっては、getParent()を複数回呼び出す必要がある場合がありますが、これは非常に醜いです。

お役に立てれば。

于 2012-05-27T20:13:33.640 に答える
6

現在のパネルの親を取得するには、次の方法を使用できます。

(JFrame)this.getRootpane().getParent();
于 2013-12-10T04:52:01.937 に答える