我有一个带按钮的网格。在我的网格中随机激活1到3个按钮,我试图关闭3秒后激活的按钮。 我尝试使用时间轴,但它只关闭了1个按钮。任何的想法 ?
答案 0 :(得分:0)
你究竟是什么意思" ...关闭按钮......"?
无论如何,不管它意味着什么,你可以在一定的延迟之后使用一个简单的类来完成它,如:
private class DelayedTrigger extends Task<Void> {
private final long delay;
private Runnable onTriggered;
public DelayedTrigger(long delay, Runnable onTriggered) {
this.delay = delay;
this.onTriggered = onTriggered;
}
@Override
protected Void call() throws Exception {
try {
Thread.sleep(delay);
} catch (Exception e) {
}
return null;
}
@Override
protected void succeeded() {
if (onTriggered != null) {
onTriggered.run();
}
}
然后,当您的按钮被激活&#34;时,您只需:
DelayedTrigger activeTrigger = new DelayedTrigger(3000, () -> myActivatedButton.close());
new Thread(activeTrigger).start();
如果您稍后改变主意(例如因为某事件在2秒后发生),您仍然可以通过调用取消触发器:
activeTrigger.cancel();
可能会有更好的(内置)解决方案,但这就是我使用的方法。