簡體   English   中英

停止“ javax.swing.timer”不會暫停動畫

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM