首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >停止"javax.swing.timer“不会暂停动画

停止"javax.swing.timer“不会暂停动画
EN

Stack Overflow用户
提问于 2016-09-08 16:37:02
回答 1查看 69关注 0票数 2

我已经用javax.swing.timer创建了一个动画,它似乎工作得很好。

但是,动画永远不会停止,所以我决定添加timer.stop()方法。

下面是一小段代码:

代码语言:javascript
复制
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)的位置时动画停止。

但事实并非如此,当我运行程序时,它只是输出和以前一样的东西,动画稍微慢了一点。

这很让人困惑,有谁能帮帮忙吗?

任何帮助都将不胜感激,

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-08 16:55:56

在您的actionPerformed()实现中对repaint()的调用安排了稍后对paintComponent()的调用,但是您的paintComponent()实现随后会在Timer上调用start()。这会创建一个无限循环,使Timer保持运行。至少,从paintComponent()中删除对start()的调用。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39386256

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档