Ich schreibe gerade ein Programm, das eine Klasse ausführt, die implements runnable
. Ich habe es so die Zeit in einem Format von HH:MM:SS
wird auf dem Bildschirm jede Sekunde gedruckt. Heres der Code:So löschen Sie die Konsole für ein Uhrensystem
public class LaunchCounter
{
public static void main(String[] args)
{
//Runs the CounterThread
new CounterThread().start();
}
}
Und hier ist der Zähler Klasse
public class CounterThread implements Runnable
{
//Declare new thread
private Thread thread;
public void start()
{
thread = new Thread(this, "");
thread.start();
}
@Override
public void run()
{
//Formatter used to display just time not date
DateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");
//never ending forloop to display time
for(int i = 1; i > 0; i++)
{
try
{
//Runtime.getRuntime().exec("cmd /c cls");
//Sleep for 1 second after each loop
Thread.sleep(1000);
//new calender is created
Calendar cal = Calendar.getInstance();
System.out.println(dateFormat.format(cal.getTime()));
}
catch(Exception e1)
{
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
Das perfekt funktioniert gut. Was ich versuche zu erreichen ist, dass die Zeile, die gedruckt wird, nach einer Sekunde gelöscht wird, und die neue Zeit gedruckt wird und so weiter. So 12:00:01
becocomes 12:00:02
mit eine neue Zeile nehmen.
Ich habe versucht System.out.print("\b\b\b\b\b\b\b")
und Runtime.getRuntime().exec("cmd /c cls");
Aber das ist nur Drucken Quadrate auf der Konsole.
Wie würde ich das erreichen?
Ich würde https://github.com/fusesource/jansi empfehlen – rkosegi