我正在使用MessageConsole课程将System.out
和System.err
重定向到名为JTextPane
的{{1}}。
我在我的构造函数中配置它:
jMessageConsoleTextPane
并且在NetBeans中我将其设置为contentType jMessageConsoleTextPane.putClientProperty(JEditorPane.HONOR_DISPLAY_PROPERTIES, Boolean.TRUE);
MessageConsole mc = new MessageConsole(jMessageConsoleTextPane, true);
mc.redirectOut(null, null);
mc.redirectErr(Color.RED, null);
mc.setMessageLines(100);
。
它可以使用text/html
和System.out
打印所有内容,但这是我的问题。我尝试将System.err
的文本设置为基于某些变量创建的html表(其中包含两个其他html表),所以我这样做:
jMessageConsoleTextPane
以下是String htmlTable = WordCounting.getHtmlTable(wordsArrays, hashtagsArrays);
jMessageConsoleTextPane.setText(htmlTable);
字符串的外观(直接来自调试器):
htmlTable
以下是<html>
<body>
<table>
<tr>
<td>
<table border="1">
<th colspan="3">Words used most</th>
<tr>
<td>1</td>
<td>day</td>
<td>3720</td>
</tr>
<tr>
<td>2</td>
<td>good</td>
<td>3354</td>
</tr>
<tr>
<td>3</td>
<td>love</td>
<td>2689</td>
</tr>
<tr>
<td>4</td>
<td>time</td>
<td>2372</td>
</tr>
<tr>
<td>5</td>
<td>got</td>
<td>1897</td>
</tr>
<tr>
<td>6</td>
<td>lot</td>
<td>1831</td>
</tr>
<tr>
<td>7</td>
<td>know</td>
<td>1801</td>
</tr>
<tr>
<td>8</td>
<td>photo</td>
<td>1772</td>
</tr>
<tr>
<td>9</td>
<td>girl</td>
<td>1755</td>
</tr>
<tr>
<td>10</td>
<td>life</td>
<td>1754</td>
</tr>
</table>
</td>
<td>
<table border="1">
<th colspan="3">Hashtags used most</th>
<tr>
<td>1</td>
<td>win</td>
<td>136</td>
</tr>
<tr>
<td>2</td>
<td>panjaforpunjab</td>
<td>105</td>
</tr>
<tr>
<td>3</td>
<td>aaronto600k</td>
<td>100</td>
</tr>
<tr>
<td>4</td>
<td>rt</td>
<td>89</td>
</tr>
<tr>
<td>5</td>
<td>giveaway</td>
<td>85</td>
</tr>
<tr>
<td>6</td>
<td>cfc</td>
<td>70</td>
</tr>
<tr>
<td>7</td>
<td>whybeinarelationshipwhen</td>
<td>65</td>
</tr>
<tr>
<td>8</td>
<td>retweet</td>
<td>64</td>
</tr>
<tr>
<td>9</td>
<td>gameinsight</td>
<td>64</td>
</tr>
<tr>
<td>10</td>
<td>rhoareunion</td>
<td>57</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>
然后我尝试使用jMessageConsoleTextPane
,它应该打印下面的文字:
System.out
发生了这种情况:
基本上所有内容都会添加到第二个表的最后一个单元格中。即使我做[23:19:32] Getting driver...
[23:19:32] Connecting to database...
[23:19:32] Executing query...
5.6.16
,也会有一个像这样的唯一表格单元格(左上角):
那是怎么回事?为什么还有一个单元格,如何解决?
答案 0 :(得分:2)
MessageConsole
类未设计为与HTML一起使用。所有类都将文本添加到Document的末尾,在您的情况下,它似乎是表的最后一个单元格。
首次创建HTML时,可以尝试向Document添加空HTML标记。然后可能会将文本添加到此标记而不是表格单元格。
可能是这样的:
</table>
<p></p>
</body>
这完全取决于Document如何解析插入Document的文本。