у меня есть такая строка
private ListProperty<String> nameLink = new SimpleListProperty<>();
Я хочу в конструкторе добавить пару элементов для проверки работоспособности программы, но с этим возникли проблемы, как я понимаю = new SimpleListProperty<>() создает мне объект типа именно SimpleListProperty<>, но в нем методов добавления элементов нет, так же я могу воспользоваться методами ListProperty<>, и там я нашел
public void setValue(ObservableList<E> v) {
set(v);
}
Как я понимаю, используя этот метод, я должен использовать коллекцию типа ObservableList, но я по факту хочу просто добавить элемент типа String. Так же среда мне подсказывает метод - add(); я передаю туда к примеру "qwe", на что мне выдает огромное исключение, так вот, как в мою коллекцию передавать обычную строку?
Нужно инициализировать каким-либо списком в конструкторе new SimpleListProperty<>(FXCollections.observableArrayList());
SimpleListProperty - это НЕ совсем список, а обертка над ObservableList, но при этом реализующая его интерфейс.
nameLink.get() - вернет список, в который можно добавлять элементы (переданный в конструкторе).
nameLink.set(...) - заменит список внутри свойства nameLink, но обычно это не то что нужно.
Также доступны обычные методы add, remove и т.д., на реализацию можно посмотреть в классе javafx.beans.binding.ListExpression, но если в SimpleListProperty не передать свой список, то будет использоваться значение по-умолчанию - FXCollections.emptyObservableList() - которое не допускает изменений (будут бросаться исключения)
Продвижение своими сайтами как стратегия роста и независимости