Выход System.out.println в JTextArea - PullRequest
       18

Выход System.out.println в JTextArea

3 голосов
/ 27 ноября 2009

Я хотел бы, чтобы каждый раз, когда я вызывал System.out.println для добавления к заданной JTextArea, без необходимости изменять все вызовы на System.out.println ... Возможно ли это?

Спасибо.

Ответы [ 4 ]

11 голосов
/ 27 ноября 2009

Версии Java начиная с 1.5 имеют System.setOut(), что позволяет вам установить собственную PrintStream. Просто создайте простой OutputStream, который добавляет данные, полученные через write(), затем оберните его в PrintStream и установите.

1 голос
/ 31 декабря 2016

Ну, вы можете сделать это, используя jTextArea.append("Your String") метод

0 голосов
/ 27 ноября 2009

Я не думаю, что есть простой способ. Обычно я стараюсь избегать вызовов System.out в своем коде именно по такой причине. Если у вас есть такой метод, как (скажем) MyUtil.myOutput(), вы можете сделать одно изменение и перенаправить его туда, куда хотите

0 голосов
/ 27 ноября 2009

Полагаю, вы могли бы потенциально использовать какую-то форму AspectJ , чтобы сделать это, но я думаю, что это может быть излишним. Однако я хотел бы создать метод, который будет как печатать, так и добавлять.

public void printAndAppend(String text) {
      System.out.println(text);
      textArea.append(text);
}

Затем вы можете просто выполнить глобальный поиск и заменить System.out.println и заменить его на printAndAppend

...