JTextArea
バックグラウンド プロセスについてテキストを書き込む方法はありますか。画面にボタンが1つあります。ユーザーがそのボタンをクリックすると、何らかのプロセスが開始されます。テキスト領域にある画面にそのプロセスの進行中のステータスを表示したい。やった後、textArea.append("Some status")
私は電話をしtextArea.repaint()
ていましたが、これはうまくいきません。
これには自分のスレッドを実装する必要がありますか?
textArea.repaint()
呼び出しは完全に不要です。を呼び出した後append
、repaint
が自動的に呼び出されるため、呼び出す必要はありません。
次に例を示します。
Process p = ...; // start the process somehow
final BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
new Thread() {
private String line;
public void run() {
while ((line = br.readLine()) != null) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
textArea.append(line);
}
});
}
}
}.start();
このコードは、ボタンがクリックされたときに実行する必要があります。