我目前有一个程序,可以用各种方式(如'System.out.println()'语句)在屏幕上打印文本行,并循环打印数组中的所有元素进行屏幕显示。
我现在正在为此程序添加GUI。我的问题是我想将打印到eclipse控制台的所有内容打印到我的GUI中的文本框中。这是否可能,如果是这样,我将如何做到这一点。
先谢谢。
答案 0 :(得分:21)
查看此博客文章,标题为Redirecting System.out and System.err to JTextPane or JTextArea。它几乎描述了你需要的一切。
基本思想是创建自己的专用输出流。在实施write()
方法时,您可以调用一些代码将新数据附加到文本框中。然后,您可以通过调用System.out
或System.setOut()
将此新输出流设置为System.setErr()
。
注意:那篇文章遗漏了一件事。您需要start your program in a separate thread。
答案 1 :(得分:7)
一个想法:
创建自己的PrintStream,将所有内容输出到此文本框。 然后将此新PrintStream设置为standard output流,如下所示:
System.setOut(myPrintStream());