JavaFx 并发事件
JavaFx Concurrency Event
我在 JavaFx 代码中遇到问题。
我有一个对话框。其中有 2 个按钮立即更新和稍后更新。
我的问题是:当我点击“稍后更新”时,对话框应该关闭,30 分钟后它应该再次弹出相同的对话框。
我的主线程将只有 运行。每当我点击稍后更新时,我只需要在 30 分钟后再次提醒它。
请帮助我如何在 javaFx 中做到这一点。
ButtonType[] buttonTypes = new ButtonType[2];
buttonTypes[0] = new ButtonType("Update Now", ButtonData.OK_DONE);
buttonTypes[1] = new ButtonType("Update Later", ButtonData.CANCEL_CLOSE);
EventHandler[] eventHandlers = new EventHandler[2];
eventHandlers[0] = new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
;
}
};
eventHandlers[1] = new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
}
};
Dialog.AlertDialog(Alert.AlertType.CONFIRMATION, Main.productName, "Update Confirmation", "New Update is available. DO you want to update ?", buttonTypes, Modality.APPLICATION_MODAL, StageStyle.DECORATED, stage, eventHandlers);
要在一段时间后做某事,请使用 PauseTransition
。
在这种情况下,你可以这样做
public void handle(ActionEvent event) {
PauseTransition delay = new PauseTransition(Duration.minutes(30));
delay.setOnFinished(evt -> {
// whatever you need to do in 30 minutes....
});
delay.play();
}
我在 JavaFx 代码中遇到问题。 我有一个对话框。其中有 2 个按钮立即更新和稍后更新。 我的问题是:当我点击“稍后更新”时,对话框应该关闭,30 分钟后它应该再次弹出相同的对话框。 我的主线程将只有 运行。每当我点击稍后更新时,我只需要在 30 分钟后再次提醒它。
请帮助我如何在 javaFx 中做到这一点。
ButtonType[] buttonTypes = new ButtonType[2];
buttonTypes[0] = new ButtonType("Update Now", ButtonData.OK_DONE);
buttonTypes[1] = new ButtonType("Update Later", ButtonData.CANCEL_CLOSE);
EventHandler[] eventHandlers = new EventHandler[2];
eventHandlers[0] = new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
;
}
};
eventHandlers[1] = new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
}
};
Dialog.AlertDialog(Alert.AlertType.CONFIRMATION, Main.productName, "Update Confirmation", "New Update is available. DO you want to update ?", buttonTypes, Modality.APPLICATION_MODAL, StageStyle.DECORATED, stage, eventHandlers);
要在一段时间后做某事,请使用 PauseTransition
。
在这种情况下,你可以这样做
public void handle(ActionEvent event) {
PauseTransition delay = new PauseTransition(Duration.minutes(30));
delay.setOnFinished(evt -> {
// whatever you need to do in 30 minutes....
});
delay.play();
}