执行其他任务后将字符串追加到 JText 区域

String append to JText Area after do other task

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

类似于