我需要獲取JavaFX中MultipleSelectionMode中ListView的最後一個選定項目。我的代碼在下面,但它不會給我最後選擇的項目。它似乎從選定的項目中給出一個隨機項目。獲取JavaFX中ListView的最後選定項目
addDocumentPagesListView.getSelectionModel().getSelectedItems().addListener(new ListChangeListener<PageFile>() {
@Override
public void onChanged(ListChangeListener.Change<? extends PageFile> change) {
while (change.next()) {
if (change.wasAdded()) {
List <? extends PageFile> l = change.getAddedSubList();
Object o = l.get(l.size() - 1);
PageFile pf = (PageFile) o;
System.out.println("Showing pdf file: " + pf.getFile().getName());
}
}
}
});
謝謝。這是正確的,如果我想要最後選擇的項目。 我應該是更具體的,我也想獲得多項選擇中的項目後未選中最後選定的項目。我希望getAddedSubList()或getList()能夠按照添加的順序保持選擇,但我不確定自己出錯的位置。 – Dave
最後,你是指列表順序中的最後一個還是用戶點擊的最後一個項目? – assylias
如果是後者,您仍然可以使用該屬性來跟蹤每個選擇,但可能有一個更簡單的方法。 – assylias