Я пытаюсь добавить "плееры" к ObservableList через текст TextField.
@FXML
void ingresar_tabla(){
String jugador = t_ingresarjudaror.getText();
Jugador juga = new Jugador(jugador);
lista_Jugadores = FXCollections.observableArrayList();
lista_Jugadores.add(juga);
juga.setNombre(jugador);
colJugador.setCellValueFactory(new PropertyValueFactory<>("nombre"));
t_tabla.setItems(lista_Jugadores);
t_tabla.refresh();
System.out.println(lista_Jugadores);
}
Моя проблема в том, что каждый раз, когда я ввожу новое имя в текстовое поле, список сохраняет только последнее значение.
Как я могу вести все записи?
Да, это то, что я думаю, но если я удалю его, выдает ошибку на консоли, я попытаюсь добавить его в другом месте
не удалять lista_Jugadores = FXCollections.observableArrayList (); просто выполните инициализацию метода.
Что касается вашей проблемы: другие на высоте. Для получения дополнительной помощи прочтите stackoverflow.com/help/mcve и действуйте соответственно. Также обратите внимание: что бы вы ни делали, не используйте table.refresh ... никогда !! Если вы чувствуете, что вам это нужно, что-то не так с настройкой: правильно настроенная таблица обновит себя при setItems (или любой модификации списка данных)




lista_Jugadores = FXCollections.observableArrayList();
создает ObservableList каждый раз, когда ваша программа вызывает ingresar_tabla()
Так что просто переместите эту строку lista_Jugadores = FXCollections.observableArrayList();
из вашего метода следующим образом:
ObeservableList<Jugador> lista_Jugadores = FXCollections.observableArrayList();
colJugador.setCellValueFactory(new PropertyValueFactory<>("nombre"));
@FXML
void ingresar_tabla(){
String jugador = t_ingresarjudaror.getText();
Jugador juga = new Jugador(jugador);
lista_Jugadores.add(juga);
juga.setNombre(jugador);
t_tabla.setItems(lista_Jugadores);
System.out.println(lista_Jugadores);
}
у вас нет имеют для репликации всех ошибок вопроса;) Не обновляйте, не сбрасывайте valueFactory, не переустанавливайте элементы - все, что требуется, это добавить нового Player.
Изначально он может удалить LisView, но я ответил, учитывая то, что он хочет.
лучше ... теперь удалите setItems, и все в порядке :)
Уверен, что этот
lista_Jugadores = FXCollections.observableArrayList();каждый раз создает новый список. Удалите его и создайте список только один раз.