簡體   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