我试图在棋盘上制作棋子.首先,我创建了一个
java.util.Timer对象,“scheduleAtFixedRate”是一个实现为代理函数的TimerTask.因此,我记录了要移动的部分(片段移动记录)以及何时适当(当用户使用鼠标移动部分时),如果记录不是nil并执行片段,则应测试TimerTask代理函数 – 移动功能.片段移动功能仅根据预先计算的矢量更新片段的x和y坐标.我在片段移动记录上添加了一个添加手表,所以当它改变时它应该重新绘制板(画布). paint方法测试这件棋子的动作记录是否为零.
问题是动画没有出现.这件作品只是跳到命运,没有两者之间的运动.动画方案有一些问题,你有更好的方法吗?
解决方法
Swing组件的更新应该在Event Dispatch Thread(EDT)上完成.所以你应该使用Swing Timer,因为在EDT上执行Timer时会执行任何代码.
你应该做的就是设置棋子的位置,它将自动重绘自己.
有关更多信息,请阅读How to Use Timers上的Swing教程中的部分.