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

时间:2009-02-19 10:55:33

标签: java eclipse user-interface

我目前有一个程序,可以用各种方式(如'System.out.println()'语句)在屏幕上打印文本行,并循环打印数组中的所有元素进行屏幕显示。

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

先谢谢。

2 个答案:

答案 0 :(得分:21)

查看此博客文章,标题为Redirecting System.out and System.err to JTextPane or JTextArea。它几乎描述了你需要的一切。

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

注意:那篇文章遗漏了一件事。您需要start your program in a separate thread

答案 1 :(得分:7)

一个想法:

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

System.setOut(myPrintStream());