Как печатать в textArea вместо консоли в Eclipse? - PullRequest
1 голос
/ 19 февраля 2009

В настоящее время у меня есть программа, которая печатает строки текста на экране различными способами, такими как операторы System.out.println (), и for зацикливает вывод всех элементов массива на экран.

Я добавляю графический интерфейс к этой программе в отдельном классе. Моя проблема в том, что я хочу напечатать все, что печатает на консоли затмения, вместо текстового поля в моем графическом интерфейсе. Возможно ли это, и если да, то как мне поступить?

1 Ответ

6 голосов
/ 24 февраля 2009

Если вы действительно хотите это сделать, присвойте System OutputStream значение PipedOutputStream и подключите его к PipedInputStream, с которого вы читаете, чтобы добавить текст в свой компонент, например:

PipedOutputStream pOut = new PipedOutputStream();
System.setOut(new PrintStream(pOut));
PipedInputStream pIn = new PipedInputStream(pOut);
BufferedReader reader = new BufferedReader(new InputStreamReader(pIn));

Затем вы можете прочитать из программы чтения и записать ее в свой текстовый компонент, например:

while(appRunning) {
    try {
        String line = reader.readLine();
        if(line != null) {
            // Write line to component
        }
    } catch (IOException ex) {
        // Handle ex
    }
}

Я бы предположил, что вы не используете System.out для вывода своего приложения, хотя он может использоваться любым (например, любыми сторонними библиотеками, которые вы решите использовать). Для записи в ваш компонент я бы использовал какое-то логирование (java.util.logging, Log4J и т. Д.) С соответствующим приложением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...