1

JTextAreaバックグラウンド プロセスについてテキストを書き込む方法はありますか。画面にボタンが1つあります。ユーザーがそのボタンをクリックすると、何らかのプロセスが開始されます。テキスト領域にある画面にそのプロセスの進行中のステータスを表示したい。やった後、textArea.append("Some status")私は電話をしtextArea.repaint()ていましたが、これはうまくいきません。

これには自分のスレッドを実装する必要がありますか?

4

2 に答える 2

2

textArea.repaint()呼び出しは完全に不要です。を呼び出した後appendrepaintが自動的に呼び出されるため、呼び出す必要はありません。

次に例を示します。

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();

このコードは、ボタンがクリックされたときに実行する必要があります。

于 2013-08-03T10:46:24.643 に答える