如何正确使用JavaFX TableView和ObservableList类?

时间:2014-05-19 06:22:21

标签: java binding tableview javafx-8

我上了一堂课,收到了一些收藏结构:

public class YIFY {

    private static List<Pelicula> resultados;

    public static void setResultados(List<Pelicula> resultados) {
        YIFY.resultados = resultados;
    }

}

稍后,在另一个课程中,我将此类List的内容与<{1}}关联起来TableView。但是我创建了一个FXCollections.observableArrayList(),它被设置为表的绑定元素。

我就是这样做的:

    peliculas = FXCollections.observableArrayList(YIFY.getResultados());

    tituloColumn.setCellValueFactory(new PropertyValueFactory<>("titulo"));
    calidadColumn.setCellValueFactory(new PropertyValueFactory<>("calidad"));
    imdbColumn.setCellValueFactory(new PropertyValueFactory<>("imdbLink"));
    añoColumn.setCellValueFactory(new PropertyValueFactory<>("año"));
    tableResultados.setItems(peliculas);

其中tableResultados是TableView,声明为ObservableList<Pelicula>的peliculas自然没有初始化。

我讨厌并且我认为当我需要在resultados课程更改/更新YIFY时,我还需要这样做:

peliculas.clear();
peliculas.setAll(YIFY.getResultados());

我认为从Observable课程开始就应该是一个 YIFY ,我尝试了但是我遇到了很多问题没有在Java文档中找到一个非抽象的正确的类实现,所以我不必实现任何额外的方法。

我该如何管理?我的方法好吗?

1 个答案:

答案 0 :(得分:1)

我不确定我是否真的理解这个问题,但

的错误是什么?
public class YIFY {
    private static ObservableList<Pelicula> resultados = FXCollections.observableArrayList();

    public static void setResultados(List<Pelicula> resultados) {
        YIFY.resultados.setAll(resultados);
    }
}