ProcessFrame.java


Dosyayı İndir
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.*;

public class ProcessFrame extends JFrame {

  private JTextArea textArea = new JTextArea();
  private Process process;
  private OutputStream output;
  private InputStream input;

  public ProcessFrame() {
    BorderLayout layout = new BorderLayout();
    setLayout(layout);
    setBounds(100, 100, 400, 300);
    createProcess();
    addTextArea();
    startReceiving();
  }

  private void createProcess() {
    try {
      Runtime runtime = Runtime.getRuntime();
      String command = "java -cp C:\\Godoro\\Research\\ProcessApplication\\build\\classes Test";
      process = runtime.exec(command);
      input = new BufferedInputStream(process.getInputStream());
      output = new BufferedOutputStream(process.getOutputStream());
    } catch (Exception exception) {
      exception.printStackTrace();
    }
  }

  private void startReceiving() {
    Runnable runnable = new Runnable() {
      public void run() {
        while (true) {
          try {
            Thread.sleep(2);
            if(input!=null){
              int read = input.read();
              if (read != -1) {
                char character = (char) read;
                System.out.print(character);
                char[] characters = new char[]{character};
                String string = new String(characters);
                textArea.append(string);
                int caretPosition=textArea.getText().length();
                textArea.setCaretPosition(caretPosition);
              }
            }
          } catch (Exception exception) {
            exception.printStackTrace();
          }
        }
      }
    };
    Thread thread = new Thread(runnable);
    thread.start();
  }

  private void addTextArea() {
    add(textArea);
    KeyListener keyListener = new KeyAdapter() {
      @Override
      public void keyTyped(KeyEvent event) {
        try {
          char character = event.getKeyChar();
          if (character == '\r' || character == '\n') {
            output.write('\r');
            output.write('\n');
            output.flush();
          } else {
            output.write(character);
          }
        } catch (Exception exception) {
          exception.printStackTrace();
        }
      }
    };
    textArea.addKeyListener(keyListener);
  }

  public static void main(String[] args) {
    ProcessFrame frame = new ProcessFrame();
    frame.setVisible(true);
  }
}

				
Dosyayı İndir

Bu Sayfayı Paylaş:




Bu Sayfayı Paylaş:

İletişim Bilgileri

Takip Et

Her Hakkı Saklıdır. Bu sitede yayınlanan tüm bilgi ve fikirlerin kullanımından fibiler.com sorumlu değildir. Bu sitede üretilmiş , derlenmiş içerikleri, fibiler.com'u kaynak göstermek koşuluyla kendi sitenizde kullanılabilirsiniz. Ancak telif hakkı olan içeriklerin hakları sahiplerine aittir