我創建了一個ListView與一羣字符串,它有多種選擇模式,最後我加了一個監聽到selectedItemProperty(),就像下面:的ListView不上selectedItemProperty
ObservableList<String> myStringsObsList = FXCollections.observableArrayList(strings);
ListView<String> listView = new ListView<String>(myStringsObsList);
listView.getSelectionModel().setSelectionMode(SelectionMode.MULTIPLE);
listView.getSelectionModel().selectedItemProperty().addListener(
new ChangeListener<String>() {
public void changed(ObservableValue<? extends String> ov, String old_val, String new_val)
{
System.out.println("Selection Changed!");
}
}
});
選擇項目時一切都打印完好,但是一旦我開始使用Ctrl取消選擇項目。這裏沒有打印任何內容,因爲更改的事件可能未被解僱。
任何人都知道這是否是一個錯誤?或者我在這裏做錯了什麼?
最後我只需要知道選擇是否發生了變化(無論是選擇還是取消選擇項目),因此我可以啓動另一個進程。
編輯--- 當用Ctrl取消選擇時,「選擇已更改!」僅在取消選擇所選項目的最後一項時纔打印。
我有同樣的問題,你的解決方案工作得很好。謝謝 –