我想在textArea中添加显示文本的延迟。我使用Thread.sleep方法,但它无法正常工作。
for(int i=0; i<3; i++) {
textArea.append(" .");
Thread.sleep(2000);
}
这部分代码位于按钮的actionListner中。按下按钮时,textArea内部会显示一个单点(。),延迟时间为2秒,但循环不能正常工作。当我运行代码时,程序首先等待6秒,然后在textArea中立即显示整个输出。
但是,如果我在GUI之外的简单java类中使用这部分代码,那么它的工作完全正常。
请帮帮我怎么做?
答案 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();
这应该有效。 如果有任何问题,请告诉我。