java如何在线程中将新数据附加到JTextArea?
我的代码:
public class ClientStarter {
public static void main(String[] args) {
java.awt.EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
new ClientGUI();
}
});
}
}
我的代码:
public class ClientGUI {
ClientMainForm mainForm;
Client client;
public ClientGUI() {
mainForm = new ClientMainForm();
client = new Client(Constants.HOST_NAME, Constants.PORT, mainForm);
}
}
客户:
public class Client {
protected Socket client;
protected BufferedReader in;
ClientMainForm mainForm;
public Client(String hostName, int ip, ClientMainForm mainForm) {
try {
this.client = new Socket(hostName, ip);
this.in = new BufferedReader(new InputStreamReader(
this.client.getInputStream()));
this.mainForm = mainForm;
String buffer = null;
while ((buffer = in.readLine()) != null) {
this.mainForm.appendTextMsg(buffer);
this.mainForm.getTextArea().setText(buffer);
System.out.println(buffer);
}
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
已创建新的客户端表单,但
this.mainForm.appendTextMsg(buffer);
this.mainForm.getTextArea().setText(buffer);
在客户端类循环中,当System.out.println(buffer);
工作正常并在控制台中弹出时,什么也不做。如何使用append或set text方法将该信息动态添加到文本区域
# 1 楼答案