public void close(){
KeyValue opacity = new KeyValue(canvas
.opacityProperty(), 0);
KeyFrame end = new KeyFrame(Duration.millis(500),
opacity);
Timeline t = new Timeline(end);
t.play();
t.setOnFinished(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
stage.close();
}
});
}
我有这样一种方法,可以在退出app之前更改不透明度。它工作正常,但在这0.5秒内,我仍然可以与UI进行交互。问题是如何在退出之前停止除此时间轴执行之外的所有内容?
答案 0 :(得分:0)
取决于您如何设置项目。您可以在整个场景中添加窗格。好吧,这并不妨碍任何人使用键盘。所以另一种方法是消费所有这样的事件:
root.addEventFilter(Event.ANY, e -> {
e.consume();
});
答案 1 :(得分:0)
致电
stage.getScene().getRoot().setDisable(true);
在开始时间线之前