私はいくつかのシャットダウンステップを持っています。これらのシャットダウンステップは、処理する前にWindowClosingイベント中に実行する必要があります。すべて正常に実行されていますが、閉じるJFrame内の既存のJLabelにシャットダウンステータスメッセージを提供する機能を追加したいと思います。 WindowClosingイベント中にJLabelのテキストを更新することは可能ですか?WindowClosingイベント中にJFrameオブジェクトを更新するにはどうすればよいですか?
答えて
シャットダウンステップをバックグラウンドで実行してからJFrameを閉じるために、次のコードを使用しました。
frame.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
SwingWorker<Void, Void> worker = new SwingWorker<Void, Void>() {
@Override
public Void doInBackground() {
// shutdown steps go here and can update the JLabel text
frame.dispose();
return null;
}
};
worker.execute();
}
});
コンポーネントとの対話を開始する前に、コンポーネントが削除されていないことを確認してください。
SwingUtilities.invokeLater(new Runnable() {
public void run() {
// update label here
}
});
JFrameは、WindowClosingイベント中にフリーズまたはサスペンドされるため、コンパニオンのアップデートは表示されません。 – Steve
私の前のコメントが更新されました。 –
が、私は終値内の既存のJLabelにシャットダウン・ステータス・メッセージを提供する機能を追加したいが
label.setText(....);
label.paintImmediately(label.getBounds());
をJFrameのリスナーのコードはイベントディスパッチ上で実行
GUIはすべてのリスナーコードが実行されるまでGUI自体を再描画することができないので、GUIが閉じられます。
paintImmediately(...)
は、コンポーネントがRepaintManagerをバイパスし、すぐにペイントすることを許可します。
あなたの説明は理にかなっていますが、私はpaintImmediatelyを使ってみました。終了イベントの内部では、フレームはまだ更新されません。 – Steve
- 1. JFrameで描画オブジェクトを中央に配置するにはどうすればよいですか?
- 2. JFrameのパネルを変更するにはどうすればよいですか?
- 3. イベントによってJTextAreaのプロパティを更新するにはどうすればよいですか?
- 4. JFrameを無形にするにはどうすればよいですか?
- 5. イベントを動的に更新するgridviewを作成するにはどうすればよいですか?
- 6. Javascript:onChangeイベント中にdatetime値を変更するにはどうすればよいですか?
- 7. JPanelをJFrameの中央に追加するにはどうすればよいですか?
- 8. JFrameのインセットを設定するにはどうすればよいですか?
- 9. アプリをライブタイルに更新するにはどうすればよいですか?
- 10. CCRCビューで更新中にこのエラーを解決するにはどうすればよいですか?
- 11. JFrameでグラフのサイズを自動的に変更するにはどうすればよいですか?
- 12. イベントを値に変更するにはどうすればいいですか
- 13. Androidでリストビューを更新するにはどうすればよいですか?
- 14. レールをリアルタイムで更新するにはどうすればよいですか?
- 15. VIM:vimでディレクトリを更新するにはどうすればよいですか?
- 16. ListBoxでアイテムテキストを更新するにはどうすればよいですか?
- 17. タイマーでPIDを更新するにはどうすればよいですか?
- 18. リーフレットポップアップでコンテンツを更新するにはどうすればよいですか?
- 19. indexedDBでデータを更新するにはどうすればよいですか?
- 20. ブートストラップモードでフォームフィールドを更新するにはどうすればよいですか?
- 21. JavaでGUIを更新するにはどうすればよいですか?
- 22. PDOで行を更新するにはどうすればよいですか?
- 23. アプリケーションをプログラムで更新するにはどうすればよいですか?
- 24. MapViewでマーカーを更新するにはどうすればよいですか?
- 25. コミットバージョンでローカルパスを更新するにはどうすればよいですか?
- 26. アプリケーションデータベースをサイレントモードで更新するにはどうすればよいですか?
- 27. wpfでウィンドウを更新するにはどうすればよいですか?
- 28. AngularJSでメタタグを更新するにはどうすればよいですか?
- 29. カスタムパースクラスでNSDictionaryを更新するにはどうすればよいですか?
- 30. MapViewをアドレスで更新するにはどうすればよいですか?
「JFrame」の終了動作に影響を与える方法については、[この回答](https://stackoverflow.com/a/7073630/418556)を参照してください。 –
WindowClosingイベント中にその回答がJFrameコンポーネントに更新を送信する場所がわかりません。 – Steve