我已经搜索了一段时间,但没有找到任何有用的东西。我想做到这一点,以便每次用户单击我的列表中的新客户时,客户的详细信息都会显示在字段中(请参见下面的屏幕截图):
在废弃了我在网上找到的一堆不起作用的解决方案之后,这是我目前的基本代码:
@FXML
private ListView<Client> clientList;
private ObservableList clientObservableList;
@Override
public void initialize(URL url, ResourceBundle rb) {
this.initializeGymState();//this loads in some dummy clients
clientObservableList = FXCollections.observableArrayList(gym.getClients());
clientList.getItems().setAll(clientObservableList);
clientList.getSelectionModel().selectFirst();
this.clientDisplayDetails();//this displays the client details, works fine
}
我什至不知道从哪里开始这个解决方案,我有一个 ObservableList 的原因是因为我希望使用 ListChangeListener,但现在我认为 ListChangeListener 可以监听列表中的变化(添加, rmove 等),而不是选择的变化。我是 JavaFX 的新手,所以请像我是一个 5 岁的 child 一样跟我说话 :P
谢谢大家
最佳答案
单选:
clientList.getSelectionModel().selectedItemProperty().addListener(...);
多选:
clientList.getSelectionModel().getSelectedItems().addListener(...);
关于java - 如何监听 JavaFX ListView 中的选择更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42168434/