我已经将一个控制台集成到我的rcp应用程序中,但我想用红色而不是蓝色显示一些重要的信息,但我不知道该怎么做(我可以添加一些if条件吗?)这个类对于我的控制台视图。请帮助我解决我的问题。
public DebugConsole()
{
super("stdio/stderr", null);
outMessageStream = newMessageStream();
outMessageStream.setColor(Display.getCurrent().getSystemColor(
SWT.COLOR_BLUE));
errMessageStream = newMessageStream();
errMessageStream.setColor(Display.getCurrent().getSystemColor(
SWT.COLOR_RED));
System.setOut(new PrintStream(outMessageStream));
System.setErr(new PrintStream(errMessageStream));
}
答案 0 :(得分:1)
建议如下。
如果newMessageStream()
方法返回有效MessageConsoleStream
,则代码中的所有System.out.print
消息将以蓝色显示,System.err.print
消息将以红色显示
使用ConsolePatternListener显示匹配的邮件 控制台上的颜色不同。
在使用System.out.print
或System.err.print
语句之前更改流颜色。
在您的最后两行代码中,将PrintSteam
实例作为类公共字段(或使用getter和setter私有)并获取这些流并设置颜色。在使用System.out.print
或System.err.print
声明后,请务必重新调整颜色。
public class DebugConsole {
private PrintStream outStream;
private PrintStream errStream;
public DebugConsole() {
super("stdio/stderr", null);
outMessageStream = newMessageStream();
outMessageStream.setColor(Display.getCurrent().getSystemColor(SWT.COLOR_BLUE));
errMessageStream = newMessageStream();
errMessageStream.setColor(Display.getCurrent().getSystemColor(SWT.COLOR_RED));
outStream = new PrintStream(outMessageStream);
errStream = new PrintStream(errMessageStream);
System.setOut(outStream);
System.setErr(errStream);
}
public PrintStream getOutStream() {
return outStream;
}
public void setOutStream(PrintStream outStream) {
this.outStream = outStream;
}
public PrintStream getErrStream() {
return errStream;
}
public void setErrStream(PrintStream errStream) {
this.errStream = errStream;
}
}
测试类:
public class TestConsole {
public static void main(String[] args) {
DebugConsole console = new DebugConsole();
MessageConsoleStream errStream = (MessageConsoleStream)console.getErrStream();
Color oldColor = errStream.getColor();
errStream.setColor(Display.getCurrent().getSystemColor(SWT.COLOR_DARK_GREEN));
//All the below message will be displayed in green color
System.err.println("This is in green color");
System.err.println("This is in green color");
//Reset color back
errStream.setColor(oldColor);
//Do the same for output stream
}
}
或使用Grep控制台插件See here