我一直在寻找一段时间,但我找不到任何有用的东西。我希望这样做,以便每次用户点击列表中的新客户端时,客户端详细信息都会显示在字段中(请参见下面的屏幕截图):
在我找到一些无法正常工作的解决方案后,这是我到目前为止的基本代码:
@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可以监听列表中的更改(add, rmove等),而不是选择的变化。我是JavaFX的新手所以请跟我说话,好像我是一个5岁的孩子,请:P
谢谢你们
答案 0 :(得分:4)
单选:
clientList.getSelectionModel().selectedItemProperty().addListener(...);
进行多项选择:
clientList.getSelectionModel().getSelectedItems().addListener(...);