Java Swing JTextArea 中的重定向、彩色 java 控制台。可能吗?
Redirected, colored java console in Java Swing JTextArea. Is it possible?
我成功地将 System.out
和 System.err
重定向到 JTextArea 遵循这篇文章:https://www.codejava.net/java-se/swing/redirect-standard-output-streams-to-jtextarea.
但是两种类型的消息都以相同的字体颜色显示。
我希望 System.err 消息以红色显示,而 System.out 消息以定义的前景色(当前为白色)显示。可能吗?
不,这是不可能的。 JTextArea 是一个简单的文本组件,只能显示一种字体和一种字体颜色。如果您需要更复杂的功能,则需要使用更复杂、更强大(且难以使用)的组件,例如 JTextPane 或 JEditorPane。
另一种选择是使用 JList 显示来自系统的文本,并为其提供渲染器,使其知道以黑色显示正常消息,以红色显示错误消息。这可以看起来 像 JTextArea,但如果单个消息占用多行,则确实会有些困难。
我成功地将 System.out
和 System.err
重定向到 JTextArea 遵循这篇文章:https://www.codejava.net/java-se/swing/redirect-standard-output-streams-to-jtextarea.
但是两种类型的消息都以相同的字体颜色显示。 我希望 System.err 消息以红色显示,而 System.out 消息以定义的前景色(当前为白色)显示。可能吗?
不,这是不可能的。 JTextArea 是一个简单的文本组件,只能显示一种字体和一种字体颜色。如果您需要更复杂的功能,则需要使用更复杂、更强大(且难以使用)的组件,例如 JTextPane 或 JEditorPane。
另一种选择是使用 JList 显示来自系统的文本,并为其提供渲染器,使其知道以黑色显示正常消息,以红色显示错误消息。这可以看起来 像 JTextArea,但如果单个消息占用多行,则确实会有些困难。