x秒后如何执行fillRect

时间:2019-07-07 22:58:53

标签: java swing animation

基本上,我想做不同的fillRect,从0.5到0.5秒,用这种方式+:

long initTime = System.currentTimeMillis();
long endTime = System.currentTimeMillis();
long passedTime = endTime - initTime;

if(passedTime >= 0 && passedTime < 500) {
    g.fillRect(0, 45, 64, 64);
}

if(passedTime == 500 && passedTime < 1000) {
    g.fillRect(0, 35, 64, 64);
}
if(passedTime == 1000 && passedTime < 1500) {
    g.fillRect(0, 25, 64, 64);
}
if(passedTime == 1500 && passedTime < 2000) {
    g.fillRect(0, 15, 64, 64);
}
if(passedTime >= 2000) {
    g.fillRect(0, 0, 64, 64);
}

我想知道我的代码存在的问题,以及我该怎么办,所以在开始的0.5秒内,它执行了第一个fillRect,然后执行了下一个0.5秒,执行了另一个fillRect,直到达到最后一个if。谢谢

PS:我尝试过Thread.sleep(tempoDeEspera),但它也无法正常工作。这在paintComponent中,如果有帮助,则在idk中,然后在另一个方法上调用repaint。

0 个答案:

没有答案