当前位置: 首页 > 面试题库 >

如何使用摆动计时器开始/停止动画

寇涵容
2023-03-14
问题内容

有人可以教我如何使用a swing timer来达到以下目的:

当我单击鼠标时,我需要一个开始动画的多边形(例如旋转等简单动画);当我再次单击时停止动画。

我对理解MouseListener工作方式没有任何问题,但对于实际的动画来说,没有任何问题。我尝试在paint()方法中用while块模拟动画,在该方法中我将绘制,擦除和重绘多边形(例如,模拟旋转),但是在while内,applet不会监听点击。它只会在片刻之后收听。单击鼠标时,我需要摆动计时器来中断一段时间。


问题答案:
import javax.swing.Timer;

添加属性;

Timer timer; 
boolean b;   // for starting and stoping animation

将以下代码添加到框架的构造函数中。

timer = new Timer(100, new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent ae) {
        // change polygon data
        // ...

        repaint();
    }
});

paint(Graphics g)从中修改的数据覆盖并绘制多边形actionPerformed(e)

最后,启动/停止动画的按钮在其事件处理程序中具有以下代码。

if (b) {
    timer.start();
} else {
    timer.stop();
}
b = !b;


 类似资料:
  • 我正在用摇摆计时器打卡NetBeans: 我只是用System.out.print来测试程序,它不是真正程序的一部分。我调用停止()方法,但计时器继续计数。此外,我通过但它的计数速度是原来的两倍。有人能帮忙吗? 编辑: 这是我的计时器(有点像SSCCE): 它不能正常工作,因为秒没有出现,但它确实显示了20次,这就是我想要的。这只是在它自己的应用程序中,在我的实际程序中更容易看到问题。 我注意到游

  • 我是一个java新手,我正在使用netbean创建一个调度程序。我的软件将从用户那里获取时间和操作,并将这些数据输入到单独的数组列表中。然后我使用javax.swing.timer启动倒计时计时器。当用户完成输入数据并点击“运行”按钮时,计时器将从数组列表中的第一个元素中获取运行时间并开始倒计时。当倒计时时间达到0时,计时器将从数组列表中的下一个元素中获取倒计时时间,依此类推。 我的问题是,计时器

  • 问题内容: 我正在尝试在ActionListener中停止计时器。以下是我正在尝试执行的代码。我打算停止在actionPerformed方法内满足特定条件时创建的计时器。timer.stop()不起作用,编译器不允许我这样做。 任何帮助。建议,建议将非常有帮助。 } 在此先感谢克里希南 问题答案: 也可能: 或者,使用事件对象获取源(并将其 强制转换为boo ): 或者,将计时器保留在实例变量中,

  • 我在Swing和设置角色动画方面有一些问题,我有一个带有关键侦听器的JFrame,当用户点击时,它在这里调用我的JPanel方法 这个动画我的角色,但这么快,我们可以看到一个东西,我怎么才能看到动画?

  • 问题内容: 我需要一些有关在PHP中启动和停止计时器的信息。我需要测量从我的.exe程序开始(我在PHP脚本中使用函数)到完成执行并显示所花费的时间(以秒为单位)之后经过的时间。 我怎样才能做到这一点? 问题答案: 您可以使用并计算差异: 这是PHP的文档:http : //php.net/manual/zh/function.microtime.php

  • 问题内容: 使用Thread.sleep()时,JTextField.setText()出现问题。这是我正在制作的基本计算器。当输入字段中的输入格式不正确时,我希望“输入错误”出现在输出字段中5秒钟,然后将其清除。当我将文本一次设置为“INPUT ERROR”(输入错误)时,setText()方法_确实_起作用,并且通过打印之间的文本,我发现它确实可以与setText(“”)一起使用。当我将Thr