Изменение значений в выпадающий список из массива - PullRequest
0 голосов
/ 28 июня 2019

Мне нужно загрузить значения из массива в комбинированный список, с этим кодом он загружает только последнее значение массива? Может кто-нибудь помочь мне, пожалуйста.

for(int i =0; i<lines.size(); i++) {
    resultArray[i] = lines.get(i).split("\t");

    Laptops[i] = resultArray[i][0];
    ObservableList<String> option = FXCollections.observableArrayList(Laptops[i].toString());

    cbx1.setValue("");
    cbx1.setItems(option);

    cbx2.setValue("");
    cbx2.setItems(option);

    cbx3.setValue("");
    cbx3.setItems(option);
}

1 Ответ

3 голосов
/ 28 июня 2019

В вашем цикле вы создаете новый List на каждой итерации. Поэтому, когда вы звоните setItems() на ComboBox, список option содержит только один элемент.

Есть несколько других проблем с вашим циклом, но если у вас есть действительный массив, заполнить его ComboBox довольно просто, используя метод Arrays.asList():

ObservableList<String> option = FXCollections.observableList(Arrays.asList(resultArray));
cbx1.setItems(option);

При этом я сомневаюсь, что вы получаете правильный массив со своей строкой:

resultArray[i] = lines.get(i).split("\t");

Не зная, что на самом деле lines есть в вашем коде, трудно конкретно обратиться к этому, но похоже, что вы можете вообще пропустить resultArray и просто использовать lines.

Вызов метода split() возвращает массив строк в любом случае. Возможно, вы могли бы полностью удалить цикл и просто попробовать:

ObservableList<String> options = 
    FXCollections.observableArrayList(Arrays.asList(lines.split("\t"));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...