lundi 8 juin 2015

JTextarea Steuern ~ consolenanbindung

hallo Community.
Ich habe eine Gui für eine Consolenanwendung geschrieben. Im Prinzip kann ich mir damit Befehle zusammenklicken und presets speichern. Soweit funktioniert die Anwendung mittlerweile auch ganz gut. einziges manko: Bisher konnte ich die Consolenausgabe über die java console in netbeans überprüfen. allerdings geht das natürlich nicht mehr, sobald das programm autak läuft.

Ich habe mir ein Jtextarea in die Gui gebaut, über das ich die console ausgeben möchte. (andere vorschläge bitte gerne)

die frage ist nun, wie bekomme ich die ausgabe in das jtext area.
hier der Code:
Java Code:

  1. /*
  2.  * To change this license header, choose License Headers in Project Properties.
  3.  * To change this template file, choose Tools | Templates
  4.  * and open the template in the editor.
  5.  */
  6. package tradedangerous.ui;
  7.  
  8. import java.io.*;
  9.  
  10. /**
  11.  *
  12.  * @author BechtJu
  13.  */
  14. public class CmdStarter {
  15.  
  16.  
  17.  
  18. public void start(String[] todo) throws IOException, InterruptedException {
  19. String[] path = {"path"};
  20. p = Runtime.getRuntime().exec("cmd"); //Start CMD
  21. Config conf = new Config();
  22. new Thread(new SyncPipe(p.getErrorStream(), System.err)).start();
  23. new Thread(new SyncPipe(p.getInputStream(), System.out)).start();
  24. PrintWriter stdin = new PrintWriter(p.getOutputStream());
  25. stdin.println("cd " + conf.getConf("overall",path));//goto trade path in cmd
  26. /*########## Comandshredder now ##########*/
  27. for (int i = 0; i < todo.length; i++) { //for i as long as Array "Todo/Commands" got entries
  28. stdin.println(todo[i]); //type next command of Todo array into cmd
  29. }
  30. /*########## Commandshredder finnished here ##########*/
  31. stdin.println("exit"); //exit commantline so you dont have a waste of cmd processes
  32. stdin.close();
  33.  
  34. /* Debug
  35.   int returnCode = p.waitFor();
  36.   System.out.println("Return code = " + returnCode);
  37. //finish debug */
  38. }
  39. }


Java Code:

  1. /*
  2.  * To change this license header, choose License Headers in Project Properties.
  3.  * To change this template file, choose Tools | Templates
  4.  * and open the template in the editor.
  5.  */
  6. package tradedangerous.ui;
  7.  
  8. import java.io.*;
  9.  
  10. /**
  11.  *
  12.  * @author BechtJu
  13.  */
  14. public class SyncPipe implements Runnable
  15. {
  16. public SyncPipe(InputStream istrm, OutputStream ostrm) {
  17. istrm_ = istrm;
  18. ostrm_ = ostrm;
  19. }
  20. public void run() {
  21. try
  22. {
  23. final byte[] buffer = new byte[1024];
  24. for (int length = 0; (length = istrm_.read(buffer)) != -1; )
  25. {
  26. ostrm_.write(buffer, 0, length);
  27. }
  28. }
  29. catch (Exception e)
  30. {
  31. e.printStackTrace();
  32. }
  33. }
  34. private final OutputStream ostrm_;
  35. private final InputStream istrm_;
  36. }


JTextarea Steuern ~ consolenanbindung

0 commentaires:

Enregistrer un commentaire