NetBeansで簡単なGUIアプリケーションを開発しようとしています。長い方法の中からスイングGUIを更新するには(私はTextAreaをすぐに更新したいですか?)
私は、アプリケーションによって実行されている現在のアクションをTextAreaに書き込むために、何らかの種類のGUIログシステムを作成したいと考えています。
単純な例として、「開始」ボタンとTextAreaという2つのオブジェクトだけを含むJFrameフォームを作成しました。
「開始」ボタンを押すと、何らかの長いメソッドが呼び出されます。実行には時間がかかります(たとえば10秒)。このメソッドが実行されている間は、テキストをTextAreaはこの長いメソッドを使用しています(もちろん、TextAreaをすぐに更新したいと思います)。
私の問題は、私がそれを行う正しい方法を見つけることができないということです。とにかく私はこれをやってみました。「開始」ボタンを押すと、アプリケーションは10秒間フリーズし、必要なようにTextAreaを更新しません。メソッドが終了したときだけ、TextAreaへの更新が見えます。
private void startButtonActionPerformed(java.awt.event.ActionEvent evt) {
try {
for (int i = 0; i < 10; i++) {
textArea.setText(i + "\n");
Thread.sleep(1000);
}
} catch (Exception e) {}
}
私はちょうど同じ問題を持っています – Yassine