2013-04-13 1 views
0

C'est un morceau de code que je suis en train de faire:exécution de deux lignes de commande en même temps

String intro = "Test String"; 
System.out.println("==============="); //Line 1 
System.out.println(intro);    //Line 2 
System.out.println("==============="); //Line 3 

je « Animer » l'intro, à savoir que j'utilise une boucle pour déplacer la chaîne un espace vers la droite pour chaque itération. Par exemple, la première fois est "Test String", la deuxième fois sera "Test String". J'utilise aussi la fonction Thread.sleep() pour retarder l'animation. Cependant, je ne pouvais pas imprimer la ligne 3 jusqu'à ce que la boucle for finisse. Y-a-t-il un moyen de faire ça? Merci.

EDIT:

Cette fonction est utilisée pour déplacer la chaîne:

public String moveChar(String a){ 
    char temp=' '; 
    char[] charOfA = new char[50]; 
    charOfA = a.toCharArray(); 
    temp = a.charAt(a.length()-1); 

    for (int i = a.length()-1; i > 0; i--) { 

     charOfA[i] = charOfA[i-1]; 

    } 
    charOfA[0] = temp; 
    a = new String(charOfA); 
    return a; 
} 

puis celui sur Main est:

System.out.println("=================================="); 
for (int i = 0; i < 5; i++) { 
    intro = moveChar(intro); 
    System.out.print(intro); 
    System.out.print("\r"); 
    sleep(1000); 
} 
System.out.println("=================================="); 

fonction de veille est juste Thread.sleep (millisecondes int) avec try-catch qui l'entoure.

+0

pouvez-vous coller le code que vous avez essayé? –

+0

Bienvenue dans StackOverflow! Pouvez-vous ajouter votre code loop et sleep() s'il vous plaît? – DeltaLima

+4

Non, ce n'est pas possible avec un simple 'println'. Vous auriez besoin de caractères spéciaux pour le contrôle des terminaux, qui sont spécifiques à un émulateur de terminal dans lequel il est exécuté. –

Répondre

0

Vous pouvez imprimer arrière retour \b et effacer tout ce que vous avez imprimé pour simuler une animation.

 String x = "Test String"; 
     for (int i = 0; i < 10; i++) 
     { 
      System.out.print(x); 
      int len = x.length(); 
      for (int j = 0; j < len; j++) 
      { 
       System.out.print('\b'); 
      } 
      x = " " + x; 
     } 

Je ne sais pas si cela fonctionnera sur toutes les plateformes. Semble fonctionner sur une ligne de commande Win7.

Questions connexes