Не могу заставить поток спать после отображения моей сетки - PullRequest
0 голосов
/ 15 мая 2019

У меня есть панель сетки, которую я хочу сделать видимой. Затем я хочу приостановить программу на 2 секунды и снова сделать сетку невидимой. По какой-то причине сетка становится видимой после thread.sleep, который я использую в своей программе.

Все это происходит внутри события нажатия кнопки.

Я пытался передвигаться по потоку. Спать, вводить их в новый метод и использовать множественный сон, но ничего не получалось.

gameGrid.setVisible(true) 
gameGrid.setVisible(false) 

Событие кнопки:

public void handleButtonGo(ActionEvent Event) throws IOException {    //On go button press

        boolean validation = true;
        try {

            gameGrid.setVisible(true);
            placeShips();        

        }catch (Exception e){

            labelwarning.setText(e.getMessage());   //on error the program will stop trying to place ships and refresh any ships placed so far.
            validation = false;
            //gameGrid.getChildren().clear();
            //BoardSetup();
            try {
                Thread.sleep(2000);
            } catch (InterruptedException e1) {
                // TODO Auto-generated catch block
                e1.printStackTrace();
            }
            gameGrid.setVisible(false);

        }
}

Сетка отображается в течение миллисекунды после thread.sle.

1 Ответ

1 голос
/ 15 мая 2019

Использование PauseTransition.

public void handleButtonGo(ActionEvent Event) throws IOException {    //On go button press

        boolean validation = true;
        try {

            gameGrid.setVisible(true);
            placeShips();        

        }catch (Exception e){

            labelwarning.setText(e.getMessage());   //on error the program will stop trying to place ships and refresh any ships placed so far.
            validation = false;
            //gameGrid.getChildren().clear();
            //BoardSetup();
            PauseTransition wait = new PauseTransition(Duration.seconds(2));
            wait.setOnFinished((e) -> {
                /*YOUR METHOD*/      
                gameGrid.setVisible(false);
            });
            wait.play();        

        }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...