如何在JavaFXListView中侦听选择更改

如何在JavaFXListView中侦听选择更改,java,listview,javafx,scenebuilder,observablelist,Java,Listview,Javafx,Scenebuilder,Observablelist,我已经搜索了一段时间,但没有找到任何有效的方法。我希望这样,每次用户单击我列表中的新客户时,客户的详细信息都会显示在字段中(请参见下面的屏幕截图): 在放弃了我在网上发现的一系列不起作用的解决方案后,以下是我迄今为止的基本代码: @FXML private ListView<Client> clientList; private ObservableList clientObservableList; @Override public void initialize(URL ur

我已经搜索了一段时间,但没有找到任何有效的方法。我希望这样,每次用户单击我列表中的新客户时,客户的详细信息都会显示在字段中(请参见下面的屏幕截图):

在放弃了我在网上发现的一系列不起作用的解决方案后,以下是我迄今为止的基本代码:

@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
}
@FXML
私有ListView客户端列表;
私有可观察列表客户端可观察列表;
@凌驾
公共void初始化(URL、ResourceBundle rb){
this.initializeGymState();//这将加载到一些虚拟客户端中
clientObservableList=FXCollections.observableArrayList(gym.getClients());
clientList.getItems().setAll(clientObservableList);
getSelectionModel().selectFirst();
this.clientDisplayDetails();//这会显示客户端详细信息,工作正常
}
我甚至不知道从哪里开始使用这个解决方案,我之所以在那里有一个ObservableList是因为我希望使用ListChangeListener,但现在我认为ListChangeListener可以侦听列表中的更改(添加、移动等),而不是选择中的更改。我是JavaFX新手,所以请像5岁的孩子一样和我说话:P

感谢各位单选:

clientList.getSelectionModel().selectedItemProperty().addListener(...);
clientList.getSelectionModel().getSelectedItems().addListener(...);
对于多个选择:

clientList.getSelectionModel().selectedItemProperty().addListener(...);
clientList.getSelectionModel().getSelectedItems().addListener(...);