繁体   English   中英

如何在JavaFX ListView中侦听选择更改

[英]How to listen for a selection change in a JavaFX ListView

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

客户画面

在废弃了一堆我在网上发现无法解决的解决方案之后,这是到目前为止的基本代码:

@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岁大的孩子一样跟我说话:P

多谢你们

对于单选:

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

对于多重选择:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM