我正在制作一个Minecraft启动器,我想制作我自己的ftb风格的控制台来配合它。关于我如何将Minecraft的打印流重定向到JTextArea
的任何想法?
您必须创建一个PrintStream
的实现,并用System.setOut
和System.setErr
分别替换System.out
和System.err
。您可能还想替换System.in
输入,这取决于这是用于MineCraft客户端还是服务器。
有很多关于将PrintStreams管道传输到Swing组件的文章。在这里可以找到描述这一过程的文章。搜索引擎查询类似"将PrintStream重定向到JTextPane"也会显示一些链接。
您可以使用像这样的StreamGobbler示例:http://www.javaworld.com/javaworld/jw-12-2000/jw-1229-traps.html?page=4
关于其他SO问题的其他答案也可能有所帮助:在调用Runtime.exec