当按钮被单击时,我试图为每个按钮上上下移动的矩形设置动画,就像哪个按钮处于活动状态。但是我不喜欢只在每个按钮上显示它的想法,因为在我希望对其进行动画处理之前,它需要从每个按钮缓慢移动到另一个按钮。 因此,我尝试非常简单地做到这一点,即每10毫秒更改一次矩形的Y“坐标”布局,最终看起来矩形取决于执行的for循环上下移动。但是发生的事情是,当单击一个按钮时,没有矩形移动的等待时间会更长,然后出现在应该立即出现的位置。看起来Thread.sleep()一次执行了应该执行的次数,然后setLayoutY()函数只执行了一次。这是代码
public void moveRectangle(double newY) {
if (statisticsRectangle.getY() > newY)
for (double i = statisticsRectangle.getY(); i >= newY; i--) {
statisticsRectangle.setLayoutY(i);
try {
Thread.sleep(10);
}
catch (InterruptedException e){}
}
else
for (double i = statisticsRectangle.getY(); i <= newY; i++) {
statisticsRectangle.setLayoutY(i);
try{
Thread.sleep(10);
}
catch (InterruptedException e){}
}
}
public void addMemberButton() {
moveRectangle(60);
}