
No.1ベストアンサー
- 回答日時:
おそらくJFrameのインスタンスを作って画面に表示するとかいった処理を行っていると思う。
Swingで、コンテナやコンポーネントを作成したりするような処理は、SwingUtilities.invokeLaterを使って実行することが推奨されている。このSwingUtilities.invokeLaterは、イベントキューに処理を登録し、実行する働きを持つ。これにより、その他の何らかの(早急に実行すべき)処理があった場合にはそれらが終わった後にイベントキューに従って処理が実行される。こうすることにより、非同期にかつ安全に処理を実行させることができる。
実はSwingというのはシングルすれどで設計されている。だから、何かの処理を実行すると、その間、他の処理がとまってしまう。そこで、直接メインスレッド内で実行させるのでなく、SwingUtilities.invokeLaterを使ってイベントキューに登録し、安全に実行させるほうがよい、というわけ。
が、まぁ実際問題として、コンポーネント類の初期化などでSwingUtilities.invokeLaterせずメインスレッドから実行したためにトラブルが起こるというようなことは(コード自体がバグってない限り)まずないと思っていいので、たいていの人はSwingUtilities.invokeLaterを使わず直接mainに処理を書いていると思う。「本当はこうしたほうがいいが、まぁしなくても問題が起こることはまずないだろう」ということ。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
tryの終了
-
Javaの再帰でメソッド呼び出す...
-
SwingUtilities.invokeLater(ne...
-
C#で別スレッドの終了を知りたい
-
flush()メソッドについて・・・
-
BLOB型の画像データを表示したい
-
Velocimacro を VLT 上の Javas...
-
Javaプログラムからポップアッ...
-
onBlurとonFocusの処理順序につ...
-
doGetとdoPostの違い
-
Java ファイルが生成させたか確...
-
Androidアプリで本体の音量変更...
-
PHPでDB処理中にプログレスバー...
-
重たい処理のタイムアウト強制終了
-
表示待ち時間に「処理中...」の...
-
Javaでのデバッグコード削除
-
アコーディオンメニューをアン...
-
C#の処理をリアルタイムに表示...
-
[Java] while(true)の意味
-
VBScriptでPing
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
tryの終了
-
Javaでのデバッグコード削除
-
Javaアプリケーション実行の返...
-
数値の定数を付ける時
-
C#で別スレッドの終了を知りたい
-
Tomcat高負荷時の設定について
-
[Java] while(true)の意味
-
Javaプログラムからポップアッ...
-
ラジオボタンの選択判定
-
onBlurとonFocusの処理順序につ...
-
WPF C#でF10のイベント取得方法...
-
JavaScriptからJAVAクラスを呼...
-
ラベルの表示までが異常に遅い...
-
Tomcatのスレッドを破棄する方法
-
ftp 同時複数接続の負荷テスト...
-
VBScriptでPing
-
アコーディオンメニューをアン...
-
JSPで「処理中」をブラウザに表示
-
表示待ち時間に「処理中...」の...
-
JAVAにおける画像のJPEG保存の...
おすすめ情報