getRuntime() e swing

Estou tentar que o output de Runtime.getRuntime().exec(cmd); saia dentro de uma janela em swing,
tentei co isto mas nao consegui,
JTextArea
JTextField
JLabel
Graphics.drawString()

alguem sabe?

import java.io.*;

import java.awt.*;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JButton;
import javax.swing.JComponent;

import java.awt.Toolkit;
import java.awt.BorderLayout;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

public class Main extends JPanel
implements ActionListener {
JButton button;

public Main() {
super(new BorderLayout());
button = new JButton(“Click Me”);
button.setPreferredSize(new Dimension(200, 80));
add(button, BorderLayout.CENTER);
button.addActionListener(this);
}

public void actionPerformed(ActionEvent e) {
//Toolkit.getDefaultToolkit().beep();
//System.out.println(“hello”);
String[] cmd = {“pwd”,“ls”};
try {
Process ls = Runtime.getRuntime().exec(cmd);
BufferedReader input1 = new BufferedReader(new InputStreamReader(ls.getInputStream()));

String str = input1.readLine();

/* Keep looping until we have read all of the output */
while(str != null) {
System.out.println(str);
str = input1.readLine();
}

} catch (java.io.IOException el) {
System.err.println(el);
}

}

/**

  • Create the GUI and show it. For thread safety,
  • this method should be invoked from the
  • event-dispatching thread.
    */
    private static void createAndShowGUI() {
    //Create and set up the window.
    JFrame frame = new JFrame(“Beeper”);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

//Create and set up the content pane.
JComponent newContentPane = new Main();
newContentPane.setOpaque(true); //content panes must be opaque
frame.setContentPane(newContentPane);

//Display the window.
frame.pack();
frame.setVisible(true);
}

public static void main(String[] args) {
//Schedule a job for the event-dispatching thread:
//creating and showing this application’s GUI.
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
}
});
}
}

  1. Crie um JTextArea ou um JTextPane, onde o texto será inserido. Não esqueça de cria-lo sobre um JScrollPane;
  2. Numa thread separada, leia o que vem no InputStream() do seu processo e chame o método do seu JTextArea com o conteúdo;
  3. Você pode usar uma das classes desse tópico, para facilitar o processo de escrita.