Java 我不知道为什么我的代码中的计时器会使动画复制其repaint()位置
我正在用japplet为我的动画使用swing定时器。 我在理解定时器是如何工作的方面遇到了一个问题 我提出了以下代码(这是其中的一小部分):Java 我不知道为什么我的代码中的计时器会使动画复制其repaint()位置,java,swing,timer,action,Java,Swing,Timer,Action,我正在用japplet为我的动画使用swing定时器。 我在理解定时器是如何工作的方面遇到了一个问题 我提出了以下代码(这是其中的一小部分): 不,不要在ActionListener内部创建新计时器,因为这样会重复创建许多计时器。相反,只需将方块移动到计时器的ActionListener中,然后调用repaint()。你读过Swing定时器教程吗?如果没有,我建议你用谷歌搜索一下。不,不要在ActionListener中创建新的计时器,因为那样会重复创建许多计时器。相反,只需将方块移动到计时器的
不,不要在ActionListener内部创建新计时器,因为这样会重复创建许多计时器。相反,只需将方块移动到计时器的ActionListener中,然后调用
repaint()
。你读过Swing定时器教程吗?如果没有,我建议你用谷歌搜索一下。不,不要在ActionListener中创建新的计时器,因为那样会重复创建许多计时器。相反,只需将方块移动到计时器的ActionListener中,然后调用repaint()
。你读过Swing定时器教程吗?如果没有,我敦促你谷歌一下,看看
Swing计时器(javax.Swing.timer的实例(在API参考文档中))在指定的延迟后触发一个或多个操作事件。不要将Swing计时器与1.3版中添加到java.util包中的通用计时器功能混淆
计时器基本上是一个java线程,它在延迟后或立即启动并执行分配的任务
您应该将计时器创建从上述actionperformed函数移动
Timer timer = new Timer(1000, new ActionListener() {
public void actionPerformed(ActionEvent e)
{
System.out.println("S");
p.moveSquare(p.SnakeHeadX,p.SnakeHeadY+p.SnakeHeadH);
p.eatBlueSquare(p.SnakeHeadX,p.SnakeHeadY);
}
});
timer.start();
有关更多详细信息,请浏览
Swing计时器(javax.Swing.timer的实例(在API参考文档中))在指定的延迟后触发一个或多个操作事件。不要将Swing计时器与1.3版中添加到java.util包中的通用计时器功能混淆
计时器基本上是一个java线程,它在延迟后或立即启动并执行分配的任务
您应该将计时器创建从上述actionperformed函数移动
Timer timer = new Timer(1000, new ActionListener() {
public void actionPerformed(ActionEvent e)
{
System.out.println("S");
p.moveSquare(p.SnakeHeadX,p.SnakeHeadY+p.SnakeHeadH);
p.eatBlueSquare(p.SnakeHeadX,p.SnakeHeadY);
}
});
timer.start();
有关更多详细信息,请浏览