Newer
Older
KisoJikkenNWP / src / main / java / istlab / KisoJikken / JTAConsole.java
package istlab.KisoJikken;

import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;

public class JTAConsole extends JTextArea implements Runnable, WindowListener {
    JFrame frame;
    Process process;
    Thread thread;
    InputStream instream;
    BufferedReader reader;
    // ProcessBuilder pb;

    // public JTAConsole(ProcessBuilder prob) {
    public JTAConsole() {
        // pb = prob;

        frame = new JFrame();
        frame.getContentPane().add(new JScrollPane(this));
        frame.setSize(500, 200);
        frame.setVisible(true);
        frame.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
        frame.addWindowListener(this);
    }

    public void Systemoutprintln(String s) {
        append(s + "\n");
        int len = getDocument().getLength();
        setCaretPosition(len);
    }

    public void startBR(Process proc) {
        process = proc;
        reader = new BufferedReader(new InputStreamReader(proc.getInputStream()));
        String line;
        try {
            while ((line = reader.readLine()) != null) {
                Systemoutprintln(line);
            }
            process.waitFor();

        } catch (IOException e) {
            e.printStackTrace();
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        Systemoutprintln("=== end ===");

        // thread = new Thread(this);
        // thread.start();
    }

    @Override
    public void run() {
        String line;
        try {
            while ((line = reader.readLine()) != null) {
                Systemoutprintln(line);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }

        Systemoutprintln("=== end ===");
    }

    public static void main(String[] arg) {
        ProcessBuilder processBuilder = new ProcessBuilder("ping", "localhost");
        Process process = null;
        try {
            process = processBuilder.start();
        } catch (IOException e) {
            e.printStackTrace();
        }
        JTAConsole con = new JTAConsole();
        con.startBR(process);

    }

    @Override
    public void windowOpened(WindowEvent e) {
        // TODO Auto-generated method stub

    }

    @Override
    public void windowClosing(WindowEvent e) {
        process.destroy();

    }

    @Override
    public void windowClosed(WindowEvent e) {
        // TODO Auto-generated method stub

    }

    @Override
    public void windowIconified(WindowEvent e) {
        // TODO Auto-generated method stub

    }

    @Override
    public void windowDeiconified(WindowEvent e) {
        // TODO Auto-generated method stub

    }

    @Override
    public void windowActivated(WindowEvent e) {
        // TODO Auto-generated method stub

    }

    @Override
    public void windowDeactivated(WindowEvent e) {
        // TODO Auto-generated method stub

    }
}