私が作成したゲームがプレーヤーに勝ったときに警告ダイアログボックスを表示しようとしています。しかし、私は例外を取得:AnimationTimer - アニメーション処理中にshowAndWaitを使用できません
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'のドキュメントで明示的に言及されていませんが、[' Stage' documentation]のドキュメントにあります(http://docs.oracle.com/javase/8/javafx/api/javafx/stage/Stage .html#showAndWait--)。 –
@James_D Ok。回避策はありますか?タイマーを止めて、プレイヤーに勝利したことを伝えるにはどうすればいいですか? – Stardust
私は、動作するはずの回避策を使って回答を追加しました。 –