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

MyMemoWiki

差分

ナビゲーションに移動 検索に移動
編集の要約なし
==Java Swing 非同期処理の結果をGUIに表示する==
[[Java]]{{category 並行処理}}
*イベントディスパッチスレッド
===SwingWorkerを利用する===
LogAnalyzeWorker worker = new LogAnalyzeWorker(txtOut, logs); // txtOut : JTextArea
worker.execute();
List<&lt;String> &gt; result = worker.get();
====実行例 ====
public static class LogAnalyzeWorker extends SwingWorker<&lt;List<&lt;String>&gt;, String> &gt; {
private File[] logs;
private JTextArea txtOut;
@Override
protected List<&lt;String> &gt; doInBackground() throws Exception { List<&lt;String> &gt; result = new ArrayList<&lt;String>&gt;();
for (File log : logs) {
publish(log.getName()); // process() で取得できる処理状態の情報を返す
@Override
protected void process(List<&lt;String> &gt; chunks) {
// publish() で設定した内容がリストで取得できるので、GUIに書き出す
for (String logout : chunks) {

案内メニュー