Console de entrada e saída

3 respostas
F

Estou criando uma IDE e queria criar um console, tipo o do eclipse. É pra funcionar assim, a IDE vai gerar um arquivo .com, que é um arquivo executavel do DOS, e eu queria executar esse arquivo no console, pro usuário não ter que abrir o prompt do DOS toda vez que quiser executar o arquivo. O console vai ser tipo um simulador do DOS, com entrada e saida de dados.
Ah! E pelo que eu li até hoje, eu acho que o jeito mais fácil de fazer é com JTextArea, então estou usando o mesmo, mas caso for pra usar outra coisa não tem problema.
Me ajudem por favor, faz um tempão que procuro como fazer isso e não consigo! Obrigado a todos.

3 Respostas

N

Bom eu sei que com a classe Runtime, você pode executar comandos no DOS, creio que com ela seja possível pegar o retorno do mesmo.

L

Precisei pegar o resultado de uma execução no console para exibir no JTextArea, na execução de um build e utilizei essa classe da uma olhada se te ajuda

package br.com.sgc.utils;

import java.io.OutputStream;
import java.io.PrintStream;

import javax.swing.text.JTextComponent;

public class TextAreaOutputStream extends OutputStream {

public static final PrintStream CONSOLE_OUT;
private static JTextComponent outWriter;

static {
	CONSOLE_OUT = System.out;
	System.setOut(new PrintStream(new TextAreaOutputStream()));
}

private TextAreaOutputStream() {
}

/** seta o componente pra mandar output dos System. */
public static void setTextAreaOut(JTextComponent textArea) {
	outWriter = textArea;
}

/** Escreve no componente */
public void write(int param) {
	outWriter.setText(outWriter.getText() + (char) param);
}

}

Na hora de Chamar

TextAreaOutputStream.setTextAreaOut(nomeJTArea);

Espero ter ajudado

:wink:

F

luiz.carlos:
Precisei pegar o resultado de uma execução no console para exibir no JTextArea, na execução de um build e utilizei essa classe da uma olhada se te ajuda

package br.com.sgc.utils;

import java.io.OutputStream;
import java.io.PrintStream;

import javax.swing.text.JTextComponent;

public class TextAreaOutputStream extends OutputStream {

public static final PrintStream CONSOLE_OUT;
private static JTextComponent outWriter;

static {
	CONSOLE_OUT = System.out;
	System.setOut(new PrintStream(new TextAreaOutputStream()));
}

private TextAreaOutputStream() {
}

/** seta o componente pra mandar output dos System. */
public static void setTextAreaOut(JTextComponent textArea) {
	outWriter = textArea;
}

/** Escreve no componente */
public void write(int param) {
	outWriter.setText(outWriter.getText() + (char) param);
}

}

Na hora de Chamar

TextAreaOutputStream.setTextAreaOut(nomeJTArea);

Espero ter ajudado

:wink:

Bom, se não me engano, ai você está desviando as saídas do console pra um JTextArea do seu programa. O que eu queria mesmo é executar o programa diretamente no meu JTextArea, com a possibilidade de ENTRADA e SAIDA de dados, ou seja, o usuário também poderá digitar na JTextArea, porém, somente poderá alterar o texto nesses pontos onde é necessária a entrada de dados. Para executar pode-se usar o Runtime, como Naruffy disse, mas não sei como desviar o resultado da execução para meu JTextArea, se alguém souber como fazer isso por favor me ajude! Obrigado a todos.

Criado 20 de fevereiro de 2009
Ultima resposta 25 de fev. de 2009
Respostas 3
Participantes 3