不要使用循环或Thread.sleep
。只需使用即可javax.swing.Timer
。以下将导致每1000毫秒发生30 次迭代 。您可以相应地调整代码,使其适应actionPerformed
每隔毫秒发生一次的情况。
int count = 0;
...
Timer timer = new Timer(1000, new ActionListener(){
@Override
public void actionPerformed(ActionEvent e){
if (count == 30) {
((Timer)e.getSource()).stop();
} else {
int rand = (int) (Math.random()* RandomNames.size);
stars.setText(RandomNames.list.get(rand));
count++;
}
}
});
timer.start();
如果需要,您可以Timer
在构造函数中设置,并start()
在actionPerformed
另一个按钮的侦听器的中设置它。
在如何使用Swing计时器中查看更多信息