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