Java:如何从套接字readline()生成事件?

时间:2014-03-24 16:12:05

标签: java swing sockets

我有来自tcp套接字的消息(线路)(来自CAN网关的消息)。在选择的消息上,在选择和解析之后,我想更新swing GUI表单(例如在Netbeans中生成)。

我读到必须从事件处理程序驱动swing更新,并且有很多示例,但它们基于按钮推送,滑块更改等,而不是传入的套接字数据(或串行端口)。看来我需要处理一条“阅读线”。套接字会产生一个事件,但是我找不到示例,并且认为它必须是一个常见的问题,而且我可能在错误的轨道上并且可能有更简单的替代方案。

1 个答案:

答案 0 :(得分:1)

使用SwingUtilities.invokeLater()在swing事件线程上运行任意代码。例如:

    String stuff = socket.readLine();
    if (myStuff(stuff)) {
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                // do any updates to swing ui here
            }
        });
    }