Перемещение координат системы меток JavaFX рекурсивно - PullRequest
0 голосов
/ 02 марта 2019

Моя программа принимает пользовательское значение и передает его через метод перед возвратом сообщения в GUI.Мне интересно, как я смогу рекурсивно переместить это сообщение (называемое displayResult) вниз по оси Y, чтобы освободить место для новых сообщений, когда пользователь снова вызывает метод.

public class GuessingGameController extends Tab {

    Scene sceneOne;
    Scene sceneTwo;
    int choice;
    int generatedNumber;
    //private GuessingGame resetGuessingGame;

    public int generateRandomNumber() {

        Random randomNumber = new Random();
        int number = randomNumber.nextInt(50) + 1;
        return number;
    }

    GuessingGameController(Stage primaryStage) {

        GuessingGame guess = new GuessingGame();
        generatedNumber = generateRandomNumber();

        Label labelOne = new Label("WELCOME TO THE GUESSING GAME");
        setText("GuessingGame");
        Pane paneLayoutOne = new StackPane();
        Pane paneLayoutTwo = new StackPane();
        Button playButton = new Button("Click to Play!");
        Button quitButton = new Button("Quit");

        paneLayoutOne.getChildren().addAll(labelOne, playButton, quitButton);

        labelOne.setTranslateX(0);
        labelOne.setTranslateY(-100);

        playButton.setTranslateX(0);
        playButton.setTranslateY(0);

        quitButton.setTranslateX(0);
        quitButton.setTranslateY(50);

        setContent(paneLayoutOne);

        sceneOne = new Scene(paneLayoutOne, 400, 400);

        quitButton.setOnAction(e -> System.exit(0));

        playButton.setOnAction(e -> primaryStage.setScene(sceneTwo));

        Label userMessage = new Label("Please enter your guess here");
        TextField userInput = new TextField();
        Button guessButton = new Button("Guess");
        Button resetButton = new Button("Reset Game");
        Button backButton = new Button("Back");

        userMessage.setTranslateX(0);
        userMessage.setTranslateY(-160);

        userInput.setTranslateX(0);
        userInput.setTranslateY(-120);

        guessButton.setTranslateX(0);
        guessButton.setTranslateY(-80);

        resetButton.setTranslateX(0);
        resetButton.setTranslateY(-40);

        backButton.setTranslateX(0);
        backButton.setTranslateY(0);

        guessButton.setOnAction(new EventHandler<ActionEvent>() {

            @Override
            public void handle(ActionEvent event) {

                int choice = Integer.parseInt(userInput.getText());
                guess.startGuessingGame(choice, generatedNumber);

                String endResult;

                endResult = guess.startGuessingGame(choice, generatedNumber);

                Label displayResult = new Label(endResult);

                displayResult.setTranslateX(0);
                displayResult.setTranslateY(150);
                paneLayoutTwo.getChildren().add(0, displayResult);
            }
        });

        //resetButton.setOnAction(e -> resetGuessingGame.resetForm(this));
        backButton.setOnAction(e -> primaryStage.setScene(sceneOne));

        paneLayoutTwo.getChildren().addAll(userMessage, userInput, guessButton, resetButton, backButton);

        sceneTwo = new Scene(paneLayoutTwo, 400, 400);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...