我成功地重定向了 System.out 以及 System.err 到jtextarea,请参阅本文:https://www.codejava.net/java-se/swing/redirect-standard-output-streams-to-jtextarea.但这两种类型的消息都以相同的字体颜色显示。我希望system.err消息以红色显示,system.out消息以定义的前景色显示(当前为白色)。有可能吗?
System.out
System.err
2vuwiymt1#
不,这是不可能的。jtextarea是一个简单的文本组件,它只能显示一种字体和一种字体颜色。如果需要更复杂的组件,则需要使用更复杂、功能更强大(而且更难使用)的组件,例如jtextpane或jeditorpane。另一个选项是使用jlist来显示系统中的文本,并给它一个渲染器,它知道用黑色显示正常消息,用红色显示错误消息。可以使其看起来像jtextarea,但是如果单个消息占用多行,则会有一些困难。
1条答案
按热度按时间2vuwiymt1#
不,这是不可能的。jtextarea是一个简单的文本组件,它只能显示一种字体和一种字体颜色。如果需要更复杂的组件,则需要使用更复杂、功能更强大(而且更难使用)的组件,例如jtextpane或jeditorpane。
另一个选项是使用jlist来显示系统中的文本,并给它一个渲染器,它知道用黑色显示正常消息,用红色显示错误消息。可以使其看起来像jtextarea,但是如果单个消息占用多行,则会有一些困难。