getRuntime() e swing

1 resposta
D

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) {

<a href="//Toolkit.getDefaultToolkit">//Toolkit.getDefaultToolkit</a>().beep();

<a href="//System.out.println">//System.out.println</a>(“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 Resposta

ViniGodoy
  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.
Criado 24 de agosto de 2008
Ultima resposta 24 de ago. de 2008
Respostas 1
Participantes 2