2016-04-08 9 views
1

Ich habe einen einfachen Code geschrieben, um ein Ladewort anzuzeigen, das sich von einer Seite zur anderen bewegt. Ist es möglich, eine andere Zeichenfolge zu drucken, während die vorherige weiterhin gedruckt wird?Wie kann ich eine Zeichenfolge drucken, während eine andere weiterdruckt?

Es wird wie folgt aussehen:

..loading (Das Wort in Bewegung bleibt)
Die Hauptdatei geladen.
Die Sicherungsdatei wurde geladen.
.... (diese Linie nur einmal gedruckt werden, während das Laden noch bewegt)

Ich möchte den Code für den nächsten Zeilen mit dem Ladecode getrennt werden.

Laden Wortcode:

public static void main(String[] args) throws Exception 
    { 
     for (int i=0; i<86; i++) 
     { 
      if (i%17 == 0) 
       System.out.print(".......... \r"); 
      if (i%17 == 1) 
       System.out.print(".........L \r"); 
      if (i%17 == 2) 
       System.out.print("........Lo \r"); 
      if (i%17 == 3) 
       System.out.print(".......Loa \r"); 
      if (i%17 == 4) 
       System.out.print("......Load \r"); 
      if (i%17 == 5) 
       System.out.print(".....Laodi \r"); 
      if (i%17 == 6) 
       System.out.print("....Loadin \r"); 
      if (i%17 == 7) 
       System.out.print("...Loading \r"); 
      if (i%17 == 8) 
       System.out.print("..Loading. \r"); 
      if (i%17 == 9) 
       System.out.print(".Loading.. \r"); 
      if (i%17 == 10) 
       System.out.print("Loading... \r"); 
      if (i%17 == 11) 
       System.out.print("oading.... \r"); 
      if (i%17 == 12) 
       System.out.print("ading..... \r"); 
      if (i%17 == 13) 
       System.out.print("ding...... \r"); 
      if (i%17 == 14) 
       System.out.print("ing....... \r"); 
      if (i%17 == 15) 
       System.out.print("ng........ \r"); 
      if (i%17 == 16) 
       System.out.print("g......... \r"); 


      Thread.sleep(150); 
     } 

    } 
+0

Ich führe den Code in der Windows-Eingabeaufforderung. – farshad

Antwort

1

Adam ist triying Ihnen zu sagen, dass Sie einen Thread verwenden.

Ein Thread ist ein Prozess in Java, der Code wird im Haupt-Thread-Prozessor ausgeführt, aber Sie können einen anderen erstellen, um andere Dinge gleichzeitig zu tun, in Computerinformationen, die Art von Dingen als Nebenläufigkeit bezeichnet wird.

empfehle ich Ihnen etwas mehr über Threads in Java lernen, vielleicht könnte dies Ihnen helfen: http://tutorials.jenkov.com/java-concurrency/creating-and-starting-threads.html

Für andere Seite, können Sie eine System.out.printin am Ende der Bedingungen stellen kann eine andere Zeichenfolge zu setzen.

1

Sie haben dies in einem separaten Thread zu tun. Leider müssen Sie sicherstellen, dass Ihre beiden Threads während print keinen Kontextwechsel haben. Angenommen, Sie möchten die Wörter loading und COUNTING drucken. Ohne eine Synchronisierung ist es sehr wahrscheinlich, dass die gedruckten Nachrichten so aussehen: loCOUaNTdiINGing.

Bitte lesen Sie über die Parallelität in Java hier: http://tutorials.jenkov.com/java-concurrency/index.html

+0

Können Sie bitte etwas mehr erklären? – farshad

+1

@farshad Sie müssten mehrere Threads ausführen, um mehrere Objekte gleichzeitig zu drucken und sicherzustellen, dass sie synchronisiert sind. Das bedeutet, dass Thread 2 wissen muss, welche Zeichen von Thread 1 gedruckt werden, um (unter anderem) Duplizierung zu vermeiden. Abgesehen von der schönen Verbindung, die Adam zur Verfügung gestellt hat, [das ist eine andere] (http://www.tutorialspoint.com/java/java_multithreading.htm), die für Sie von Interesse sein könnte. –

+0

jetzt verstehe ich, wie es funktioniert, aber es scheint für ein Anfänger wie ich eine fortgeschrittene Sache zu tun, aber ich werde definitiv versuchen, mehr darüber zu lernen. Kann wirklich praktisch sein. – farshad

Verwandte Themen