public void doConnect(){
try{
statusArea.append("Starting server.....\n");
serverSocket = new ServerSocket(5555);
statusArea.append("Server started.\n");
statusArea.append("Waiting for client connection....\n");
socket = serverSocket.accept();
statusArea.append("Client connected.\n");
inStream = new ObjectInputStream(socket.getInputStream());
} catch (IOException e){
e.printStackTrace();
}
}
只有在启动服务器和客户端连接后,所有字符串才会追加到文本区域。因此,我希望将其逐步显示为我的代码。怎么解决?
最佳答案
您正在阻止事件调度线程,以防止其更新屏幕。
有关更多详细信息,请参见Concurrency in Swing。
我建议您使用SwingWorker
在后台线程中执行套接字代码,并使用SwingWorker
的功能安全地更新UI。有关更多详细信息,请参见Worker Threads and SwingWorker
this for example之类的