Динамически именующие экземпляры класса в Java - PullRequest
0 голосов
/ 29 января 2020

Я пытаюсь использовать foreach l oop, чтобы создать кнопку для всего списка:

List<String> aList= new ArrayList<>();

И затем использовать цикл foreach;

for(String aString: aList){
    // Some code here to dynamically name buttons with the string 'aString';
}

1 Ответ

1 голос
/ 29 января 2020

Имена переменных должны быть определены во время компиляции, и поэтому не могут быть динамическими c Имена объектов.

Если вы хотите иметь возможность давать имена ваших кнопок, вы можете использовать Hashmap

Map<String, Button> map = new HashMap<>();
//Add objects to the map like this (e.g):

for(String aString:aList){
map.put(aString, new Button());
}

и извлекайте объекты следующим образом:


Button mc = map.get(name);

, если вы просто пытаетесь добавить кнопки в рамку, попробуйте следующий код:

    for(int i=0; i<aList.size(); i++){
            Button temp = new Button();
            temp.setName(aList.get(i));
            temp.setLabel(aList.get(i));
        //write logic to add to frame/panel
        }



или

  for(String aString:aList){
            Button tempButton = new Button();
            tempButton.setLabel(aString);
            tempButton.setName(aString);
            //write logic to add to frame/panel

        }

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