Попытка добавить строку в ListView при нажатии кнопки - PullRequest
0 голосов
/ 06 апреля 2020

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

1 Ответ

1 голос
/ 06 апреля 2020

FXCollections.observableArrayList(...) создает новый наблюдаемый список и добавляет к нему предоставленные элементы. Если вы передадите массив здесь, элементы массива будут скопированы в новый список, и больше не будет никакой связи между массивом и наблюдаемым списком, поэтому последующие изменения в массиве не будут отражены в наблюдаемом списке ,

Все, что вам нужно сделать, - это напрямую изменить список поддержки. Из вашего кода не совсем понятно, что вы намереваетесь делать: в вашем массиве есть один элемент, и вы перебираете массив (т.е. только один раз), изменяя все элементы (только один) на "k".

Таким образом, эквивалент этого, но с изменением списка, будет просто

addButton.setOnAction(e-> {
    lv.getItems().set(0, "k");
});

В заголовке вашего вопроса сказано, что вы хотите добавить и элемент в представление списка, которое вы будет делать с

addButton.setOnAction(e-> {
    lv.getItems().add("k");
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...