2012-03-13 11 views
1

最後のSystem.out.println出力を上書きすることができるので、たとえば、配列の変更を視覚化したり、プロジェスバーを作成したりできますか?例えば前のコンソール出力を上書きする

私はこのクラスを持っている場合:

class Main{ 
    public static void main(String[] args){ 
    for(int i = 0; i < 10; i++){ 
     for(int j = 0; j < i; j++){ 
     System.out.print("#"); 
     } 
     System.out.println(""); 
    } 
    } 
} 

iは、単一の行にしていない10本の別々の線で示されているこの単純なプログレスバーを作成するために行うには何を持っていますか?

答えて

2

これは私の特定のコンソール(Windowsの場合)上で動作しますが、それはひどく、ポータブルではありません...

public class Test { 
    public static void main(String[] args) throws Exception { 
     for (int i = 0; i < 100; i++) { 
      System.out.print("#"); 
      if (i % 20 == 0) { 
       System.out.print("\r     \r"); 
      } 
      System.out.flush(); 
      Thread.sleep(100); 
     } 
    } 
} 

Consoleクラスもありますが、それは実際に私の知る限り見ることができるように非常にあなたを購入していません...

+0

ありがとう!それはLinuxでも動作しますが、これを使って複数の行をクリアすることはできますか? – reox

+0

@reox:いいえ、 '\ r'を使って行の先頭に戻り、スペースの読み込みを行い、再び行の先頭に戻ります。あなたはより精巧な制御のために[この質問](http://stackoverflow.com/questions/439799/whats-a-good-java-curses-like-library-for-terminal-applications)を見たいかもしれません。 –

+0

大丈夫、多分私は代わりにtextareaでjframeを使用します:Dありがとう! – reox

関連する問題