【问题标题】:String append to JText Area after do other task执行其他任务后将字符串附加到 JText 区域
【发布时间】:2015-08-15 16:55:25
【问题描述】:
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();
        }
    }

只有在我启动服务器和客户端连接后,所有字符串才会附加到文本区域。所以我希望它一步一步地显示为我的代码。怎么解决?

【问题讨论】:

  • 我通过点击一个按钮启动服务器,点击后看起来像一个切换按钮,只有在客户端点击连接按钮后才能正常btn。

标签: java swing sockets append jtextarea


【解决方案1】:

您正在阻止事件调度线程,阻止它更新屏幕。

查看Concurrency in Swing了解更多详情。

我建议您使用SwingWorker 在后台线程中执行套接字代码,并使用SwingWorker 的功能来安全地更新 UI。详情请见Worker Threads and SwingWorker

类似this for example

【讨论】:

    猜你喜欢
    • 2023-03-22
    • 2012-07-23
    • 2011-02-14
    • 2018-06-23
    • 2019-02-10
    • 2022-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多