0

プログラムのダイアログウィンドウを表すJFrameを拡張するクラスがあります。このダイアログは、テキストフィールドを介したユーザー入力を受け入れます。入力によっては、必要に応じて、ウィンドウが別のメッセージ(JLabelとして保存)で更新される場合もあります。

ダイアログのボタン(コードではダイアログを破棄します)をクリックしたときに、ダイアログを再度アクティブにすると(最初にダイアログを開始するコントロールを選択して)、以前に入力したテキストに気づきました。また、JLabelの状態はそのままです。ダイアログの実行中のインスタンスが消えたときに「強制終了」する方法を探しているので、再び表示されたときは「新規」であり、空白のテキストフィールドとデフォルトのJLabelがあります。これは可能ですか?

4

3 に答える 3

2

フレームへの参照を維持しているようです。

代わりに、JFrame#setDefaultCloseOperation(JFrame.DISPOSE)ネイティブリソースの基礎となるフレームを破棄し、必要なときに再作成するために使用することをお勧めします。

更新しました

メインコードのフレームが完成したら、変数をに設定するだけですnull。フレームを表示するコードで、nullチェックを行い、必要に応じてフレームを再作成する必要があります

于 2013-02-17T06:04:10.320 に答える
0

設定しようとしましたJFrame#setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)か?

于 2013-02-17T05:58:03.897 に答える
0

frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

プログラムを開いた状態で複数のウィンドウがある場合、これにより1つのウィンドウのみが閉じられます。ウィンドウが1つだけ残っていて、それを閉じると、プログラムは停止します。

于 2013-02-17T19:34:26.477 に答える