JavaFX 浏览器 - 在 ListView 中显示条目的 getTitle()

JavaFX Browser - display entry's getTitle() in ListView

我需要向我的 JavaFX 网络浏览器添加显示历史记录功能。 我有: 将历史记录作为 ObservableList 的方法:

public static ObservableList<Entry> getHistoryList() {
    WebHistory history = MyJavaFXBrowser.getWebEngine().getHistory();
    ObservableList<Entry> entries = history.getEntries();
    return entries; 
}

并转换为 ListView

public static ListView<Entry> getHistoryPane() {
    return new ListView<Entry>(getHistoryList());
}

如何只显示 Entry.getTitle() - 而不是全部信息。

如果我将方法更改为:

public static ObservableList<String> getHistoryListTitles(){
        WebHistory history = MyJavaFXBrowser.getWebEngine().getHistory();
        ObservableList<Entry> entries = history.getEntries();
        ObservableList<String> titles = FXCollections.observableArrayList();;
        for (Entry entry: entries) {
            titles.add(entry.getTitle());
        }

        return titles;
    }

当我自动更改页面时它不会更新历史记录。

如何在 ListView 中访问 ObservableList 的方法?

使用细胞工厂:

public static ListView<Entry> getHistoryPane() {
    ListView<Entry> historyPane = new ListView<Entry>(getHistoryList());

    historyPane.setCellFactory(lv -> new ListCell<Entry>() {
        @Override
        protected void updateItem(Entry entry, boolean empty) {
            super.updateItem(entry, empty);
            setText(entry == null ? null : entry.getTitle());
        }
    });

    return historyPane ;
}