gpt4 book ai didi

java - 如何使用 swing 和 clojure 制作动画?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:29:09 25 4
gpt4 key购买 nike

我正在尝试为棋盘中的棋子制作动画。首先,我创建了一个 java.util.Timer 对象,它“scheduleAtFixedRate”一个作为代理函数实现的 TimerTask。所以我记录了要移动的片段(片段移动记录),当它适当时(当用户使用鼠标移动片段时)TimerTask 代理函数应该测试记录是否为零并执行片段 -移动功能。根据预先计算的 vector ,棋子移动功能只是更新棋子的 x 和 y 坐标。我在棋子移动记录上放了一个 add-watch,所以当它改变时它应该重新绘制板( Canvas )。 paint 方法测试这个 piece-moving-record 是否不为 nil 来绘制它。

问题是动画没有出现。曲子只是跳到天命,中间没有 Action 。动画方案有问题,有更好的方法吗?

最佳答案

Swing 组件的更新应该在事件调度线程 (EDT) 上完成。因此,您应该使用 Swing 定时器,因为定时器触发时执行的任何代码都将在 EDT 上执行。

您所要做的就是设置棋子的位置,它会自动重新绘制。

阅读 How to Use Timers 上的 Swing 教程部分获取更多信息。

关于java - 如何使用 swing 和 clojure 制作动画?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2913548/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com