在GUI JTextArea中显示Jtidy错误/警告消息

时间:2012-11-08 04:22:45

标签: java swing jtextarea jtidy

我正在编写一个程序,它使用jtidy从URL获取的源代码中清除html。我想在JTextArea中的GUI中显示错误和警告。我如何“重新路由”从打印到stdout到JTextArea的警告?我查看了Jtidy API,看不到任何符合我想要的东西。任何人都知道如何做到这一点,或者甚至可能做到这一点?

//测试jtidy选项

public void test(String U) throws MalformedURLException, IOException
{
    Tidy tidy = new Tidy();
    InputStream URLInputStream = new URL(U).openStream();
    File file = new File("test.html");
    FileOutputStream fop = new FileOutputStream(file);

    tidy.setShowWarnings(true);
    tidy.setShowErrors(0);
    tidy.setSmartIndent(true);
    tidy.setMakeClean(true);
    tidy.setXHTML(true);
    Document doc = tidy.parseDOM(URLInputStream, fop);
}

1 个答案:

答案 0 :(得分:1)

假设JTidy向stdout输出错误和警告,你可以temporarily change where System.out calls go

PrintStream originalOut = System.out;
ByteArrayOutputStream baos = new ByteArrayOutputStream();
PrintStream myOutputStream = new PrintStream(baos);
System.setOut(myOutputStream);

// your JTidy code here

String capturedOutput = new String(baos.toByteArray(), StandardCharsets.UTF_8);
System.setOut(originalOut);

// Send capturedOutput to a JTextArea
myTextArea.append(capturedOutput);

System.err如果你需要{{1}}代替/那么。