| ページ一覧 | ブログ | twitter |  書式 | 書式(表) |

MyMemoWiki

差分

ナビゲーションに移動 検索に移動
編集の要約なし
==イベントディスパッチスレッド==
[[Java][Swing]]{{category 並行処理}}
http://java.sun.com/docs/books/tutorial/uiswing/concurrency/dispatch.html
==GUIスレッド==
「昔はGUIのアプリケーションそのものがシングルスレッドで、GUIのイベントはアプリケーションのメインスレッドの中の"メインイベントループ(main event loop)” と呼ばれるループの中で処理されました。今日のGUIフレームワークはほんの少しだけ違って、イベントディスパッチスレッド(event dispatch thread,EDT)と呼ばれる、GUIイベントを処理する専用のスレッドを作ります。」
[[http://www.amazon.co.jp/gp/product/4797337206?ie=UTF8&tag=typea09-22&linkCode=as2&camp=247&creative=7399&creativeASIN=4797337206 Java並行処理プログラミング ―その「基盤」と「最新API」を究める―]]
{{amazon|4797337206}}
*これらは、どんなスレッドからでも安全に呼び出せます。
*その他のSwingコンポーネントメソッドは、イベントディスパッチスレッドから呼び出す必要があります。
<&lt;blockquote>&gt;プログラムが、このルールを無視すると、ほとんどの場合きちんと機能するのに、予測や再現性のないエラーが発生しやすくなります。<&lt;/blockquote>&gt;
*Java Swing 非同期処理の結果をGUIに表示する
*コードがイベントディスパッチ上で動いているか確認するには、javax.swing.SwingUtilities.isEventDispatchThreadを呼び出します。
<&lt;blockquote>&gt;コントロール不能のイベントを中止したり、ユーザーインターフェースが無反応にならない為に、イベントディスパッチスレッド上のタスクは、すばやく完了しなければなりません。<&lt;/blockquote>&gt;
===例===

案内メニュー