我有来自 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/