1

Main クラスがあり、StartFrame は JFrame を拡張し、UserPanel は JPanel を拡張して StartFrame に追加します。UserPanel にボタンがあります。ボタンを押したときに StartFrame を閉じるにはどうすればよいですか (私はイベント処理に精通しています。問題は StartFrame に情報を送信する方法です)。それとも、フレームのパネル(必要に応じてサイズ)を変更して再利用する方が良いですか?

4

2 に答える 2

5

コンポーネントを囲んでいるウィンドウを閉じたい場合は、そのウィンドウへの参照が必要です。SwingUtilities には、これを取得するのに役立つメソッドがありますgetWindowAncestor(Component c)dispose()次に、返されたウィンドウを呼び出すことができます。

つまり、

Window win = SwingUtilities.getWindowAncestor(myJPanel); 
win.dispose();

これを使用して GUI を終了する場合はこれで問題ありませんが、ビューを交換することが目的の場合は、Windows を交換するのではなく、メインの JFrame を表示したままにし、代わりに表示されるコンポーネントを交換することをお勧めします。 CardLayout を使用します。

于 2012-12-09T20:34:47.800 に答える
1

ボタンはすでにフレーム上にあります(ここでは右上にあります)。構築時に呼び出すだけJFrame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE)で、ユーザーの期待どおりに機能します。

その他のヒント

フレームやパネルを拡張するのではなく、作成して使用するだけです。

于 2012-12-10T01:43:05.080 に答える