[英]Stopping the “javax.swing.timer” won't pause the animation
我已經使用javax.swing.timer
創建了一個動畫,它似乎可以正常工作。
但是,動畫將永遠持續下去,因此我決定添加timer.stop()
方法。
這是一小段代碼:
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(Color.RED);
g.fillOval(xGrid, 200, 50, 50);
t.start();
}
public void actionPerformed(ActionEvent event) {
if (xGrid >= 350) {
t.stop();
}
xGrid++;
repaint();
}
我希望動畫在圓到達(350,200)位置時停止。
但事實並非如此。 當我運行程序時,它的輸出與以前相同,但動畫稍慢一些。
這很令人困惑,任何人都可以幫忙嗎?
任何幫助將不勝感激,
在actionPerformed()
實現中對repaint()
的調用安排了稍后對paintComponent()
調用,但是您的paintComponent()
隨后在Timer
上調用了start()
。 這將創建一個無限循環,使Timer
保持運行狀態。 至少要從paintComponent()
刪除對start()
的調用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.