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 } }