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

标签 java swing sockets

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

我读到 Swing 更新必须从事件处理程序驱动,并且有很多示例,但它们基于按钮按下、 slider 更改等,而不是传入套接字数据(或串行端口)。看来我需要使套接字的“readline”的处理生成一个事件,但是我没有找到示例,并且考虑到它必须是一个常见问题,也许我走错了路,可能有更简单的替代方案。

最佳答案

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

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

关于Java:如何从套接字 readline() 生成事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22614750/

相关文章:

java - 无法将 java.lang.String 字段设置为 java.lang.String

java - Android 为什么我会遇到循环依赖异常

java - 使用 JPA 和 Hibernate 在 Persistence.xml 中配置 C3P0

ubuntu 服务器上的 laravel websockets 和 pusher-js CROS 问题

java - 将华氏度转换为摄氏度 (Java)

java - 如何在另一个图像上绘制图像?

Android 套接字主机未解析 *.onion

java - 无法创建临时文件

java - 高效的 JSP/Tomcat 持久存储?

java - JFrame 启动时如何禁用 JPanel