如何在显示文本时在JTextArea中添加延迟?

时间:2016-02-14 10:20:05

标签: java swing delay jtextarea

我想在textArea中添加显示文本的延迟。我使用Thread.sleep方法,但它无法正常工作。

for(int i=0; i<3; i++) {
    textArea.append(" .");
    Thread.sleep(2000);
}

这部分代码位于按钮的actionListner中。按下按钮时,textArea内部会显示一个单点(。),延迟时间为2秒,但循环不能正常工作。当我运行代码时,程序首先等待6秒,然后在textArea中立即显示整个输出。

但是,如果我在GUI之外的简单java类中使用这部分代码,那么它的工作完全正常。

请帮帮我怎么做?

1 个答案:

答案 0 :(得分:1)

您可以使用计时器,您所要做的就是:

1)导入

import javax.swing.Timer;

2)使用自己的Action Listener

进行初始化
private int i = 0;
private Timer tmr = new Timer(2000, new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent e) {
        textArea.append(" .");
        ++i;
        if(i >= 2)
           tmr.stop();
    }
});

3)启动你的计时器:

tmr.start();

这应该有效。 如果有任何问题,请告诉我。