使用tableColumn中的按钮将歌曲添加到播放列表javafx

使用tableColumn中的按钮将歌曲添加到播放列表javafx,javafx,tablecolumn,Javafx,Tablecolumn,我想要一个带有“添加到播放列表”按钮的表格列。列中的行表示一首歌曲。我有以下课程: private class ButtonCell extends TableCell<Record, Boolean> { final Button cellButton = new Button("Add to PlayList"); ButtonCell(){ cellButton.setOnAction(new EventHandler<ActionEv

我想要一个带有“添加到播放列表”按钮的表格列。列中的行表示一首歌曲。我有以下课程:

private class ButtonCell extends TableCell<Record, Boolean> {
    final Button cellButton = new Button("Add to PlayList");

    ButtonCell(){

        cellButton.setOnAction(new EventHandler<ActionEvent>(){

            @Override
            public void handle(ActionEvent t) {
                // do something when button clicked
                //playList.add(this.getTableRow().getItem());
            }
        });
    }

    //Display button if the row is not empty
    @Override
    protected void updateItem(Boolean t, boolean empty) {
        super.updateItem(t, empty);
        if(!empty){
            setGraphic(cellButton);
        }
    }
}

EventHandler<ActionEvent> btnNewHandler = 
        new EventHandler<ActionEvent>(){

    @Override
    public void handle(ActionEvent t) {


    }
};
private class ButtonCell扩展了TableCell{
最终按钮cellButton=新按钮(“添加到播放列表”);
ButtonCell(){
cellButton.setOnAction(新的EventHandler(){
@凌驾
公共无效句柄(ActionEvent t){
//单击按钮时执行某些操作
//playList.add(this.getTableRow().getItem());
}
});
}
//如果行不为空,则显示按钮
@凌驾
受保护的void updateItem(布尔值t,布尔值为空){
super.updateItem(t,空);
如果(!空){
设置图形(cellButton);
}
}
}
EventHandler BTNNEWandler=
新的EventHandler(){
@凌驾
公共无效句柄(ActionEvent t){
}
};
我希望能够做到“playList.add(this.getTableRow().getItem());” 有办法做到这一点吗

问题的要点是如何获取单元格的信息并将该信息添加到可观察列表中

由于某种原因,返回原始的
TableRow
对象,而不是一般类型的对象。换句话说,方法签名是

public class TableCell<S,T> {
    public TableRow getTableRow();
}

另一种完全不同的技术是使列类型
记录
,因此您可以直接在单元格上调用
getItem()
。使用这种方法。

ha我一直在解决自己的一些问题,但我不知道如何解决以下问题:'错误:找不到添加(对象)MusicPlayer.playlist.add(getTableRow().getItem())的合适方法;^方法集合。添加(乐曲)不适用(参数不匹配;对象无法转换为乐曲)方法列表。添加(乐曲)不适用(参数不匹配;对象无法转换为乐曲)'
public class TableCell<S,T> {
    public TableRow<S> getTableRow();
}
playList.add((Record) this.getTableRow().getItem() );