我有这个计时器用来Star.png
移动JFrame & JPanel
移动具有计时器的星星的功能:
private final static int HEIGHT = 300;
.
.//more code here
.
.
x=y=0;
.
.
public void downRight() {
Timer localTimer = new Timer(100, null);
localTimer.setRepeats(false);
localTimer.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
x++;
y++;
repaint();
}
});
int xTest=0;
while (y < HEIGHT) {
System.out.println("x "+(++xTest)+" y "+y);
localTimer.start();
}
System.out.println("Reached");
}
运行计时器并测试 xTest 时,y 值发现如下:
x 1 y 0
x 2 y 0
x 3 y 0
..... More Outputs here
.....
x 1653 y 1
x 1654 y 1
......
......
x 285836 y 299
x 285837 y 299
Reached
那么这里发生了什么?尽管两者都在同一范围内,但为什么要xTest
大于?y