【问题标题】:JavaFX 8 - Bind TableView Selection Model PropertyJavaFX 8 - 绑定 TableView 选择模型属性
【发布时间】:2026-01-27 23:20:03
【问题描述】:

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

我有一个绑定到歌曲对象的 ObservableList 的 TableView。我还有一个当前播放歌曲的歌曲对象。我想要的是当当前播放的歌曲对象发生变化时,表格视图的选定行将更改为该歌曲。

这是当前歌曲对象。

private ObjectProperty<JSong> currentSong;

@FXML
private TableView<JSong> songsTable;

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

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

【问题讨论】:

标签: java javafx javafx-8


【解决方案1】:

您可以将监听器添加到 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);

        }
    });

【讨论】:

  • 如何将tableView行与currentSong绑定?