我試圖創建遞增x和y座標,通過設定一個計時器在movingGame類,射擊在不同的類一個ActionListener該消息又在原來的運行方法的移動物體類,它運行代碼來增加x和y變量,並且爲了檢查這些值,輸出x和y。但是,x和y不會上升,就好像結果沒有記錄一樣。如果我在打印結果之前增加它們,它是1,表示它從原始值的正確增加。如果在打印完值後增加,它將不會顯示任何值。這裏是我的代碼:Java變量不更新的計時器
movingGame類:
import javax.swing.JFrame;
import javax.swing.Timer;
public class movingGame extends JFrame {
public int x;
public int y;
void moving() {
Timer timer = new Timer(100,new ActionPerformer());
timer.start();
}
public void timeToDraw() {
//This is where it is supposed to increment.
x++;
y++;
System.out.println("y: "+y);
System.out.println("x: "+x);
//If I put x++ and y++ here, it would give a value of 0.
};
public static void main(String[] args){
movingGame d = new movingGame();
d.setVisible(true);
d.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
d.setSize(1000, 666);
d.setExtendedState(MAXIMIZED_BOTH);
d.moving();
};
}
的ActionPerformer類:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class ActionPerformer implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
movingGame m = new movingGame();
m.timeToDraw();
}
}
總之我的問題是,在運行方法後,x和y的值保持不變,只在方法內部顯示更改,但僅在特定運行中顯示。感謝您的幫助。
的約定是大寫的Java中的類名的東西。所以在這種情況下,'movingGame'應該是'MovingGame',就像它的'ActionPerformer','ActionListener','ActionEvent','JFrame'等 – Dave