在TimerTask内部切换场景

时间:2019-01-06 23:40:55

标签: java javafx

我正在尝试使用javafx创建倒计时。 一旦计时器到达00:00,我希望计时器停止并切换到Scene3。

这是我的代码。我尝试在actionEvent中使用primaryStage.setScene(scene3),它可以工作,但在timerTask中不能工作。计时器有效,但我无法切换场景

public static void timer1(Text text, int minutes1, int seconds1, GridPane Grid2, Stage primaryStage)
{
  final Timer timer= new Timer();

  final TimerTask task=new TimerTask() {
    @Override
    public void run() {
      seconds--;
      if (seconds<0) {
        minutes-=1;
        seconds=59;
      }
      if (minutes<0) {
        minutes=59;
        seconds=59;
      }
      if(minutes==0&&seconds<11)
        Grid2.setStyle("-fx-background-color: #FF0000;");

      if(minutes==0&&seconds==0) {
        primaryStage.setScene(scene3);
        timer.cancel();
        timer.purge();
      }
      text.setText("");
      //String hoursformatted = String.format("%02d", hours);
      String minutesformatted = String.format("%02d", minutes);
      String secondsformatted = String.format("%02d", seconds);
      text.setText(minutesformatted+":"+secondsformatted);
    }

  };
  timer.schedule(task,0, 1000);
}

0 个答案:

没有答案