我有来自tcp套接字的消息(线路)(来自CAN网关的消息)。在选择的消息上,在选择和解析之后,我想更新swing GUI表单(例如在Netbeans中生成)。
我读到必须从事件处理程序驱动swing更新,并且有很多示例,但它们基于按钮推送,滑块更改等,而不是传入的套接字数据(或串行端口)。看来我需要处理一条“阅读线”。套接字会产生一个事件,但是我找不到示例,并且认为它必须是一个常见的问题,而且我可能在错误的轨道上并且可能有更简单的替代方案。
答案 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
}
});
}