Я немного новичок в Java, JavaFX и программировании в целом, и у меня есть проблема, которая ломает мне голову.
В большинстве учебных пособий, которые я посмотрел относительно заполнения ListView (в частности, с помощью ObservableArrayList), самый простой способ сделать это состоит в том, чтобы сделать его из ObservableList of Strings, например так:
ObservableList<String> wordsList = FXCollections.observableArrayList("First word","Second word", "Third word", "Etc.");
ListView<String> listViewOfStrings = new ListView<>(wordsList);
Но я не хочу использовать строки. Я хотел бы использовать пользовательский объект под названием Words:
ObservableList<Word> wordsList = FXCollections.observableArrayList();
wordsList.add(new Word("First Word", "Definition of First Word");
wordsList.add(new Word("Second Word", "Definition of Second Word");
wordsList.add(new Word("Third Word", "Definition of Third Word");
ListView<Word> listViewOfWords = new ListView<>(wordsList);
Каждый объект Word имеет только 2 свойства: wordString (строка слова) и определение (еще одна строка, являющаяся определением слова). У меня есть геттеры и сеттеры для обоих.
Вы можете видеть, где это going-, код компилируется и работает, но когда я отображаю его в своем приложении, а не отображает заголовки каждого слова в ListView, он отображает сам объект Word в виде строки!
Мой вопрос здесь, в частности, есть ли простой способ переписать это:
ListView<Word> listViewOfWords = new ListView<>(wordsList);
Таким образом, что вместо того, чтобы брать слова непосредственно из wordsList, он обращается к свойству wordString в каждом слове моего observableArrayList?
Просто чтобы быть понятным, это не для Android, и список слов будет изменен, сохранен и загружен в конце концов, поэтому я не могу просто создать другой массив для хранения wordStrings. Я провел небольшое исследование в Интернете, и, кажется, есть такая вещь, как "Сотовые фабрики", но она кажется излишне сложной для того, что кажется такой простой проблемой, и, как я уже говорил, я немного новичок, когда дело доходит до программирования.
Кто-нибудь может помочь? Это мой первый раз здесь, поэтому я извиняюсь, если я не включил достаточно моего кода, или я сделал что-то не так.