2016-01-13 2 views
0

Я пробовал другие ссылки на этой части, но все еще не могу получить то, что мне нужно. Поэтому я хотел бы получить помощь от группы здесь.Выходное сообщение из java-процесса в JTextArea

Ниже мой код:

try { 
       String file = new File("iperf3.exe").getCanonicalPath(); 
       String cmd1[] = {file,"-c","ping.online.net","-P","10","-w","710000"}; 
       Process p1 = Runtime.getRuntime().exec(cmd1); 

       BufferedReader input1 = new BufferedReader(new InputStreamReader(p1.getInputStream())); 

       String line1; 
       while ((line1 = input1.readLine()) != null) { 
        txtConsole1.setText(line1); 
       } 
      } catch (IOException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 

Выход сообщение в TEXTAREA только последнее сообщение от выполнения команды. Могу ли я узнать, как я могу передать все выходные сообщения в textArea?

спасибо.

+0

Вы либо блокировать EDT или нарушение единых правил свинга, в любом случае не довольно. Посмотрите [Concurrency in Swing] (http://docs.oracle.com/javase/tutorial/uiswing/concurrency/) и [Рабочие темы и SwingWorker] (http://docs.oracle.com/javase/tutorial /uiswing/concurrency/worker.html) для получения дополнительной информации – MadProgrammer

ответ

0

Вы нарушаете предыдущий контент txtConsole1 по телефону txtConsole1.setText(line1);. Получить все ваши выходные данные в переменной и на последнем множестве содержания в txtConsole1

String line1; 
String content; 
while ((line1 = input1.readLine()) != null) { 
    content += line1; 
} 
txtConsole1.setText(content); 
Смежные вопросы