Создание кнопок, но каждая кнопка имеет свое имя переменной - PullRequest
0 голосов
/ 18 октября 2018

В настоящее время у меня есть программа, в которой вы можете нажать одну «кнопку стека» и создать 9 стеков (которые являются просто кнопками).Тем не менее, я хочу, чтобы каждая кнопка имела свою собственную идентификацию, поэтому, если я нажму на конкретную кнопку, она приведет меня к определенному окну для каждой.

Вот мой код:

private void createButtonActivate(){
    System.out.println("A stack has been created");
    stackCount++;
    newStackButton = new Button((Integer.toString(stackCount)));
    newStackButton.setOnAction(actionEvent -> {
        methods.openNoteCard();
    });

    root.getChildren().add(newStackButton);
}

Вот что называется для создания кнопок:

private void createStack(){
    stackCreated = true;

    if (stackCount < 3 ) {
        createButtonActivate();
        buttonXPos = buttonXPos + 150;
    }
    else if (stackCount >= 3 && stackCount < 6){
        if (stackCount == 3){
            buttonXPos = 50;
            buttonYPos = buttonYPos + 150;
        }
        createButtonActivate();
        buttonXPos = buttonXPos + 150;
       // buttonXPos =
    }
    else if (stackCount >= 6 && stackCount < 9){
        if (stackCount == 6){
            buttonXPos = 50;
            buttonYPos = buttonYPos + 150;
        }
        createButtonActivate();
        buttonXPos = buttonXPos + 150;
    }

}

Надеюсь, я не предоставил слишком много кода иВо всяком случае, я действительно объяснил свою проблему, ха-ха, спасибо за любую помощь!

1 Ответ

0 голосов
/ 18 октября 2018

Если вы хотите создавать кнопки с уникальной логикой при нажатии, вы можете добавить параметр к своему методу openNoteCard.

Например:

void openNoteCard(int stackId) {
    switch (stackId) {
        case 0: //logic for the first button
        case 1: //logic for the second button
        // and so on...
    }
}

Итак,в вашем createButtonActive методе это будет выглядеть так:

private void createButtonActivate(){
    System.out.println("A stack has been created");
    stackCount++;
    newStackButton = new Button((Integer.toString(stackCount)));
    newStackButton.setOnAction(actionEvent -> {
        methods.openNoteCard(stackCount); // Passing a parameter here
    });

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