Внесите ListCell
, который отображает изображение и устанавливает cellFactory
на ListView
. В примере standard oracle tutorial приведен пример реализации пользовательской ячейки списка.
Вы бы сделать что-то по следующим направлениям:
friends.setCellFactory(listView -> new ListCell<String>() {
private ImageView imageView = new ImageView();
@Override
public void updateItem(String friend, boolean empty) {
super.updateItem(friend, empty);
if (empty) {
setText(null);
setGraphic(null);
} else {
Image image = getImageForFriend(friend);
imageView.setImage(image);
setText(friend);
setGraphic(imageView);
}
}
});
Метод updateItem(...)
можно назвать довольно часто, так что это, вероятно, лучше предварительно загрузить изображения и сделать их доступными для клетки, а не создавать их каждый раз updateItem(...)
называется.
Спасибо, я довольно новичок в JavaFX, и я изо всех сил пытался понять, как работает фабрика ячеек. Этот код работает безупречно: D – Ricktza