2014-01-24 56 views
3

我想在CMD /控制檯中使用Jansi Java庫來使用顏色,並且遇到了一些小問題。當我使用Jansi Library並嘗試使用print f語句時,「>>」不會在最後打印。相反,掃描儀被調用並要求輸入。爲什麼會發生這種情況,有什麼辦法可以使「>>」和掃描儀輸入顯示在一行上?爲什麼我的printf語句的末尾不會顯示「>>」?

import java.util.Scanner; 

import org.fusesource.jansi.AnsiConsole; 


public class Test { 
    public static void main(String[] args) { 
     AnsiConsole.systemInstall(); 

     String name; 
     Scanner scanner = new Scanner(System.in); 

     String BLACK = "\u001B[0;30m"; 
     String RED = "\u001B[0;31m"; 
     String GREEN = "\u001B[0;32m"; 
     String YELLOW = "\u001B[0;33m"; 
     String BLUE = "\u001B[0;34m"; 
     String MAGENTA = "\u001B[0;35m"; 
     String CYAN = "\u001B[0;36m"; 
     String WHITE = "\u001B[0;37m"; 

     System.out.printf("Hello young lad! What is thy " + RED + "name " + WHITE + "you were given at birth?\n>> "); 
     name = scanner.nextLine(); 
    } 
} 
+2

嘗試在調用nextLine()之前添加'System.out.flush();'。 – chrylis

+0

忽略AnsiConsole的東西,它適用於我。看起來你的系統可能會被緩存給我。 – tommyo

+2

您正在調用'printf',但沒有使用它的任何功能。如果你不知道'printf'是關於'print'的話,最好使用'print'。 –

回答

1

此代碼在評論AnsiConsole事物後正常工作。

這就是我打印出來的。

Hello young lad! What is thy [0;31mname [0;37myou were given at birth? 
>> John 
+0

如果問題與Jansi的控制檯有關,該怎麼辦? – zakinster

+0

@zakinster然後它將與jAnsi的ANSI控制檯相關。 –

相關問題