Java JTextArea更新

时间:2014-04-26 15:55:55

标签: java jtextarea

目前我的JTextArea只是在循环结束时自行更新,例如

循环for i = 1,什么都不做 循环为i = 2,什么都不做

当循环结束时,它实际显示下一个文本

    for(Integer i = 0; i<Integer.parseInt(this.number.getText()); i++) {

        BufferedReader read = new BufferedReader(new InputStreamReader(url.openStream()));
        String request = read.readLine();

        System.out.println("aaa");

        if (!request.equals("</Success>")) {

            int status = this.generateErrorLogs(request);
        }
    }

因此,当为每个i完成for循环时,将添加文本,例如“Error”

对于循环i = 1,写入区域 对于循环i = 2,写入区域

我目前正在更新文本区域

public int generateErrorLogs(String request) {

        Update status = new Update(this.area);

        switch (request) {

            case "<Error>LinkWebAccountDialog.shortError</Error>":
                status.updateArea("Password too short");
                return 0;
            case "<Error>Error.emailAlreadyUsed</Error>":
                this.area.append("Email already used\n");
                return 1;
            default:
                return 2;
        }
    }

public class Update {

    private JTextArea area;

    public Update(JTextArea area) {

        this.area = area;
    }

    public void updateArea(final String text) {

        SwingUtilities.invokeLater(new Runnable() {

            public void run() {

                updateTextArea(text);
            }
        });
    }

    public void updateTextArea(String text) {

        this.area.append(text + "\n");
    }
}

问题是如何使循环在每次更改时更新textArea文本而不是等待循环完成

0 个答案:

没有答案
相关问题