小さなtextEditorの作成についての考え方。テキスト入力用とテキスト入力用の2つのテキストエリアがあります。私の理解としては、SwingWorkerはバックグラウンドで動作するので、UIの更新に遅延はありません。チェックのために、私は以下のコードを書いて5000行を挿入してタイプしようとしましたが、ラインが増加するにつれて、textEditor2の更新が非常に遅くなっていると思います。 swingworkerの実装はコードで正しいですか?SwingWorkerの実装
textEditor1とtextEditor2はJTextAreaに
あなたがSwingWorkerを使用しないでください。このタスクについてはprivate void editorKeyPressed(java.awt.event.KeyEvent evt) {
SwingWorker worker = new SwingWorker<Void, Void>() {
String text = null;
@Override
protected Void doInBackground() throws Exception {
text = textEditor1.getText().toString();
return null;
}
@Override
protected void done() {
try {
get();
textEditor2.setText(text);
} catch (Exception ex) {
System.out.println(ex);
}
}
};
worker.execute();
}
get()メソッドとは何ですか? – Balconsky
get()はdoInBackground()によってスローされた例外をキャッチします – FirmView
おそらく、あなたの質問を更新し、あなたが達成しようとするものを(ユーザーの視点から)示すことができます。あなたの検証に数秒かかる場合を除き、通常はユーザー入力を検証するだけの簡単な方法はSwingworkerを必要としないためです。しかし、平均的なユーザーの方がはるかに速く入力するので、すべてのキーストロークで検証を実行することはできません。 – Robin