2013-07-30 90 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

相關問題