2013-07-30 94 views
0

我打电话给plink,使用来自Java的ssh在远程位置执行shell脚本。当我从ssh控制台获取缓冲的数据时,我想将它们实时写入JTextField等等(后端代码执行大约10分钟并继续生成一些字符串)。将实时SSH控制台输出重定向到JFrame

执行此操作时,执行挂起,直到后端代码完全执行并一次显示所有输出。如果我这样做是为了指导Eclipse控制台,它在执行时逐行写入。有什么建议么?

//JFrame Component 
    public GUIApplicationConsoleFrame(String title) { 
    dispFrame = new JFrame(title); 
    opArea = new JTextArea(""); 
    ipField = new JTextField(); 


    // Writing Output, redirected to JTextArea 
    if (std.available() > 0) { 
      value = std.read(); 
      out((char) value); 

      while (true) { 
       value = std.read(); 
       out((char) value); 
       if (<terminating condition>) 
        if (++count==2) 
         break; 
       Thread.sleep(3); 
      } 
     } 

感谢, 阿里亚

回答

0

你应该把SSH在后台线程,并从中更新的JTextArea。这样你就不会阻塞事件分派线程,即使后台(worker)线程没有终止,它也能够更新图形界面。

+0

谢谢,正在努力。如果需要,会回来。 – AryA

相关问题