java如何在点了某个button后让一个Label显示一段时间再消失?

最近刚学Java GUI,打算写个5V5回合制进行攻击的小游戏,现在写到战斗过程了,
战斗是点了攻击按钮后就计算伤害,计算伤害我写在另外一个类中的static函数中,问题
是我想要计算伤害后,将伤害显示出来1秒后自动消失,目前伤害是用Label表示。我在网上找了sleep和Timer的方法,但执行都是界面定住1秒,伤害不显示,就直接到下一个角色行动了。
try {
Thread.sleep(1000);
} catch (InterruptedException e1) {
e1.printStackTrace();
}
SetCanNotVisDamage();

SetCanNotVisDamage()这个函数是让已经显示的Label.setVisible(false),如果我把
这段代码删除,伤害Label就会一直显示不消失。

因为你的sleep时间是1秒,而且你要做循环判断 很简单的东西,用TImer就可以 Thread就可以实现

点击按钮将Label.setVisible(true),在来个偏移透明度渐变动画,监听动画,动画结束Label.setVisible(false),当然这个动画也可以用Thread代替,注意要在主线程里更新view状态。