Po wciśnięciu przycisku włącza się timer, po upływie określonego czasu okienko się zamyka.

Program który napisałem wygląda tak,(działać działa) chciałem się spytać czy jest to poprawnie napisane oraz czy można było by coś zmienić/ulepszyć w poniższym kodzie lub zastosować inne lepsze rozwiązanie.

 
private IntegerProperty i = new SimpleIntegerProperty(11);

    private Timeline timeline;

    @FXML
    void okButtonClicked() {
        //TODO po wcisniecu okButton włącza się timer i po skończonym odliczaniu np od 10 do 0 okieno się wyłącza

         timeline = new Timeline(
                new KeyFrame(
                Duration.seconds(1), event -> {
                    i.set(i.getValue()-1);
                    if(i.getValue()==0){
                        Stage stage = (Stage) okButton.getScene().getWindow();
                        stage.close();
                    }
                    notificationLabel.setText("Do zamkniecia zostało "+i.getValue()+" sec");
                }
                ));
        timeline.setCycleCount(Animation.INDEFINITE);
        timeline.play();
        okButton.setDisable(true);
    }