【发布时间】:2017-11-28 06:08:11
【问题描述】:
当玩家赢得我创建的游戏时,我试图显示一个警告对话框。但是,我得到一个例外:
java.lang.IllegalStateException: showAndWait is not allowed during animation or layout processing
我尝试在AnimationTimer 中添加stop(),但它不起作用,仍然抛出相同的异常:
if (ball.getBall().getCenterY() == 0) {
//computer lost!
stop();
Alert alert = new Alert(Alert.AlertType.INFORMATION);
alert.setTitle(null);
alert.setHeaderText(null);
alert.setContentText("Good game. You won! Click OK to exit.");
alert.showAndWait(); //exception thrown here
System.exit(0);
}
【问题讨论】:
-
异常与描述的完全相同:您不能从动画中调用
showAndWait()。这在Alert文档中没有明确提及,但在Stagedocumentation 的文档中。 -
@James_D 好的。有解决方法吗?如何停止计时器,然后告诉玩家他们赢了?
-
我添加了一个应该可行的解决方法的答案。
标签: java animation exception javafx