是否可以将TableView的选定行绑定到对象?

我有一个TableView绑定到歌曲对象的ObservableList。我也有当前正在播放的歌曲的歌曲对象。我想要的是当当前播放的歌曲对象更改时,表视图的选定行将更改为该歌曲。

这是当前的歌曲对象。

private ObjectProperty<JSong> currentSong;

@FXML
private TableView<JSong> songsTable;


我看到我可以绑定到表的选择模型属性,但是我不知道如何将歌曲对象传递给它。

songsTable.selectionModelProperty().bind(???)

最佳答案

您可以将监听器添加到currentSong属性。

ObjectProperty<JSong> currentSong;
TableView<JSong> songsTable;
currentSong.addListener(new ChangeListener<JSong>() {

        @Override
        public void changed(ObservableValue<? extends JSong> observable,
                JSong oldValue, JSong newValue) {
            songsTable.getSelectionModel().select(newValue);

        }
    });

09-08 11:03