目前我的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文本而不是等待循环完成