循环问题

1 java core

我正在从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循环中监听我的动作.

我有什么想法可以达到这个目的吗?

Mar*_*erg 5

为读取操作创建新线程.

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)