java - 如何监听 JavaFX ListView 中的选择更改

标签 java listview javafx scenebuilder observablelist

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

Client screen

在废弃了我在网上找到的一堆不起作用的解决方案之后,这是我目前的基本代码:

@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/

相关文章:

listview - Xamarin.Forms:软键盘与页面底部的最后一个条目(滚动时)重叠

wpf - ListView 中的中心单列包含图像

java - 使用 Java/JaCoB 让 32 位 COM 客户端与进程外 64 位服务器通信

java - 印度尼西亚的正确区域设置( "id_ID"Vs "in_ID")?

Android ListView 与单选模式下的 RadioButton 和自定义行布局

java - 在javafx中定义<Image/>标签

java - 为什么按钮没有显示在框架中?

css - 使用 JavaFx 的文本字段 CSS 样式

java - 为什么我的代码会出现 ClassNotFoundException?

java - 我必须使用什么 cplex 函数来写入这个变量?