我正在从while循环内的串口读取数据,如下所示:
while((len = this.getIn().read(buffer)) > 0) {
data = new String(buffer, 0, len);
System.out.println("data len " + len);
handleModemresponse(data);
}
Run Code Online (Sandbox Code Playgroud)
但是,当从流中读取数据开始时,具有断开连接按钮的主AWT窗口没有获得任何监听器(整个窗口没有获得监听器).它只在传输完成时监听,即在while循环之外.
我希望我的AWT窗口能够在while循环中监听我的动作.
我有什么想法可以达到这个目的吗?
为读取操作创建新线程.
public class LongProcess implements Runnable {
public void startProcess() {
Thread t = new Thread(this);
t.start();
}
public void run() {
// Define inputstream here
while((len = inputStream.read(buffer)) > 0) {
data = new String(buffer, 0, len);
System.out.println("data len " + len);
handleModemresponse(data);
}
}
}
Run Code Online (Sandbox Code Playgroud)
编辑(评论汤姆霍廷 - 评论):
SwingUtilities.invokeLater(new LongProcess ());
Run Code Online (Sandbox Code Playgroud)