私はこのタイマーを使って移動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