2017-02-22 111 views
0

比方說,我在Java中的控制檯應用程序從用戶讀取輸入,然後打印退了出去(很基本的)Java控制檯掃描儀彩色

進口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」,在默認的白色。

作爲獎勵,是有可能配置一個背景的「世界你好」時,它會以紅色打印?這意味着,我可以選擇兩種顏色的情況下,用戶具有在紅色的默認設置其控制檯的背景。

謝謝!

+0

你可以在這裏找到一些答案:http://stackoverflow.com/questions/1448858/how-to-color-system-out -println-output –

+0

這改變了輸出,而不是輸入。 @SergeiStepanenko – Shiv

回答

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

然後使用謝爾蓋的方法來改變Java輸出的顏色到你想要的。

因爲我沒有測試這個解決方案,我不知道你是否已經與謝爾蓋的方法改變後,它們的顏色會迷路!你必須嘗試。

一些旁註:

  • 你爲什麼要改變輸入顏色?這似乎是一個花哨的效果很多努力。
  • 您可能會覆蓋用戶已他的控制檯上所作的喜好!例如,我使用綠色字體,因爲我可以更好地閱讀它。有一個程序改變這種顏色永久(?)可能會使用戶不滿。
  • 此解決方案僅適用於Windows。當用戶在基於Linux的機器上運行它時,可能會失敗。所以你必須爲不同的操作系統實現一個開關,如下所示:https://stackoverflow.com/a/5738345/1368690