2015-11-20 58 views
1

Increasing indentation for subsequent linesJansi不斷遞增縮進

我似乎無法擺脫以前打印的行。如果我只是

AnsiConsole.out.println(ansi); 

它重複每個連續輸出相同的輸出。例如。 一個 AB ABC

即使輸出僅應該是

一個 乙 Ç

我的代碼是:

AnsiConsole.out.println(a); 
a.eraseLine(Erase.ALL); 
AnsiConsole.out.flush; 

如果我不使用.eraseLine(Erase.ALL),它看起來像這樣:

另外,如果我不使用Jansi和使用純System.out的,它看起來像這樣,所以我知道這不是代碼的問題在其他地方。

解決方案: 由於Betlista的答案。我發現什麼是錯的。事情是,我的ansi變量實際上是使用Ansi構造函數調用的,而不是Ansi.ansi()方法。這就是我的代碼中的不同之處。謝謝。 :)

回答

1

似乎你做錯了什麼,但在您的文章丟失大量的信息,這是很難跟蹤...

...所以我會寫它是如何工作對我來說:

我在Windows測試版本1.11使用maven與jansi 7

我只是跟着上https://github.com/fusesource/jansi的信息和我的代碼

package jansi; 

import java.io.IOException; 

import org.fusesource.jansi.Ansi; 
import org.fusesource.jansi.Ansi.Color; 
import org.fusesource.jansi.AnsiConsole; 

public class Main { 

    public static void main(String[] args) throws IOException { 
     AnsiConsole.systemInstall(); 

     String[] sa = {"A", "B", "C"}; 
     Color[] ca = {Color.RED, Color.GREEN, Color.BLUE}; 
     for (int i = 0; i < sa.length; ++i) { 
      System.out.println(Ansi.ansi().eraseLine().fg(ca[i]).a(sa[i]).reset()); 
     } 
    } 
} 

是做什麼我的預期,這是結果:

enter image description here