【问题标题】:How to properly use JavaFX TableView and ObservableList classes?如何正确使用 JavaFX TableView 和 ObservableList 类?
【发布时间】:2014-05-19 06:22:20
【问题描述】:

我有一个类,我收到一些集合结构:

public class YIFY {

    private static List<Pelicula> resultados;

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

}

稍后,在另一堂课上,我将此类List 的内容关联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,而 peliculas 声明为 ObservableList&lt;Pelicula&gt; 自然不会初始化。

我讨厌并且我认为不太好的是,当我需要在 YIFY 班级更改/更新 resultados 时,我还需要这样做:

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

我认为这一切都应该是一个 Observable,从 YIFY 课程开始,我尝试了,但我遇到了很多问题,因为我没有找到沿着 Java 文档,一个适当的类实现不是抽象的,所以我不必实现任何额外的方法。

我该如何管理?我的方法可以吗?

【问题讨论】:

  • 将 YIFY 类中的列表设为 ObservableList 听起来像是您需要的方法。当您尝试这样做时,我真的不明白您遇到了什么问题。
  • 我没有在 Java 文档中找到合适的非抽象类实现,因此我不必实现任何额外的方法。
  • 为什么不直接用FXCollections.observableArrayList()初始化呢?
  • ObservableList&lt;Pelicula&gt; resultados = FXCollections.observableArrayList(); 对吗?

标签: java binding tableview javafx-8


【解决方案1】:

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

public class YIFY {
    private static ObservableList<Pelicula> resultados = FXCollections.observableArrayList();

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

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2018-01-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多