public class JTextAreaOutputStream extends OutputStream {
private JTextArea destination;
public JTextAreaOutputStream(JTextArea destination) {
if (destination == null)
throw new IllegalArgumentException ("Destination is null");
this.destination = destination;
}
@Override
public void write(int b) throws IOException {
write (new byte [] {(byte)b}, 0, 1);
}
@Override
public void write(byte[] buffer, int offset, int length) throws IOException
{
final String text = new String (buffer, offset, length);
SwingUtilities.invokeLater(new Runnable ()
{
@Override
public void run()
{
destination.append (text);
}
});
}
}
然后将文本区域重定向如下:
public void setSystemOutRedirect() {
JTextAreaOutputStream out = new JTextAreaOutputStream (textAreaUpgraderLog);
System.setOut (new PrintStream(out));
System.setErr(new PrintStream(out));
}
3条答案
按热度按时间jgovgodb1#
试试这个:
然后将文本区域重定向如下:
gc0ot86w2#
这些大部分是计数器和进程,所以,看看这篇文章和jobclient的api。
另外,我想你会发现这个帖子非常有用。
dxxyhpgq3#
只需在程序开头使用以下代码段。
然后所有标准错误将重定向到
D:/out.txt
文件。对于重定向标准输出,只需使用System.setOut(ps)