让我们说我在Java中有一个控制台应用程序,它从用户那里读取输入,然后将其打印出来(非常基本)
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
while(true) {
Scanner scanner = new Scanner(System.in);
String message = scanner.nextLine();
System.out.println(message);
}
}
}
与使用System.out.println
打印的文字相比,是否可以在输入不同颜色时输入用户输入的文字?
例如,如果我在黑色背景上默认为白色文本的控制台中运行该程序,则会发生以下情况。
我会输入" hello world"它会以红色显示。当我按下回车键时,它会打印" hello world"在默认的白色。
作为奖励,是否可以为" hello world"配置背景?什么时候用红色打印?这意味着我可以选择两种对比色,以防用户将控制台背景设置为默认设置为红色。
谢谢!
答案 0 :(得分:0)
您可以使用this code启动Windows控制台:
Process p = Runtime.getRuntime().exec("cmd /c start cmd.exe");
p.waitFor();
使用此代码启动Java应用程序并设置控制台的fontcolor / backgroundcolor。
/c
- 开关意味着您为控制台提供应运行的命令。
您可以通过单击(Windows)Start -> cmd /k color 2c
进行测试...这将启动一个控制台,其中包含一些非常难看的颜色,您可以根据自己的需要进行更改:
https://ss64.com/nt/color.html
然后使用Sergei的方法将Java输出的颜色更改为您想要的颜色。
由于我没有测试这个解决方案,我不知道用Sergei的方法改变它们后颜色是否会丢失!你必须尝试。
一些附注:
答案 1 :(得分:0)
您需要执行以下操作:
import java.util.Scanner;
public class App {
public static final String ANSI_RESET = "\u001B[0m";
public static final String ANSI_RED = "\u001B[31m";
public static void main(String[] args) throws Exception {
System.out.println("Movie Name:" + ANSI_RED);
Scanner read = new Scanner(System.in);
String movieName = read.nextLine();
System.out.println(ANSI_RESET +"\nMovie Genre:" + ANSI_RED);
}
}