2015-10-05 93 views
3

我一直在试图建立一种方式来重新创建小宠物的“滚动案文”,其中一个字母出现的时间。问题是能够创建足够短的计时器以使其合理。Java的短暂延迟

这是我曾尝试:

public static void roll(String text) { 
    int i = 0; 
    while(i < text.length()) { 
     try { 
      Thread.sleep(200);     //1000 milliseconds is one second. 
     } catch(InterruptedException ex) { 
      Thread.currentThread().interrupt(); 
     } 
    System.out.print(text.charAt(i)); 
    i++; 
    } 
} 

这将正常工作,如果我在的Thread.sleep将该值设置为任何超过250的问题是,如果我设置低于250秒,然后它会等待在输出任何东西之前,整个时间长度(如果我告诉它等待100毫秒100次,它将等待10秒钟)。

林不知道这是否与计时器本身或者类型的问题没有在这里打球别的东西。

+0

@jonathon要花1秒或10秒为100毫秒的10倍为1000毫秒或1秒 –

+0

对不起,我的意思100ms的100次,每次10秒。 –

+0

@JonathonM它奇怪的,它只是工作得很好,我...... – nafas

回答

3

您可以使用System.out.flush();迫使缓冲地写出来。

+0

我需要把这个放在哪里?把它放在System.out.print(text.charAt(i))之后;没有解决任何问题。另外我应该使用任何参数? –

+0

@JonathonM你如何运行应用程序?在诸如Netbeans之类的IDE中,还是在命令行中? – Kayaman

+0

使用NetBeans 8.0.2 –