如何将所有控制台输出重定向到GUI文本框?

我目前有一个程序,以各种方式打印文本行,如’System.out.println()’语句和循环打印arrays中的所有元素到屏幕。

我现在正在为这个程序添加一个GUI。 我的问题是我想将打印到eclipse控制台的所有内容打印到我的GUI中的文本框中。 这是可能的,如果是这样,我将如何做到这一点。

提前致谢。

查看此博客文章,题为将System.out和System.err重定向到JTextPane或JTextArea 。 它几乎描述了您需要的一切。

基本思想是您创建自己的专用输出流。 在执行write()方法时,可以调用一些代码将新数据附加到文本框中。 然后,通过调用System.setOut()System.setErr()将此新输出流设置为System.out

注意:那篇文章缺少一件事。 您需要在一个单独的线程中启动您的程序 。

一个主意:

创建自己的PrintStream,将所有内容输出到此文本框。 然后将此新PrintStream设置为标准输出流,如下所示:

 System.setOut(myPrintStream());