Comment utiliser correctement les classes JavaFX TableView et ObservableList?


J'ai une classe où je reçois une structure de collection:

public class YIFY {

    private static List<Pelicula> resultados;

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

}

Plus Tard, à une autre classe I associer le contenu de ces List pour un TableView. Cependant, je crée un FXCollections.observableArrayList() qui est défini comme élément de liaison à la table.

Voici comment je le fais:

    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);

Où tableResultados est un TableView et peliculas déclaré comme un ObservableList<Pelicula> naturellement pas initialisé.

Ce que je déteste et je pense que ce n'est tout simplement pas OK, c'est quand j'ai besoin de changer/mettre à jour resultados à YIFY classe, je dois aussi faire:

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

Je pense que tout devrait être un Observable depuis le début de la classe YIFY, ce que j'ai essayé, mais j'ai eu BEAUCOUP de problèmes car je n'ai pas trouvé le long des documents Java une implémentation de classe appropriée qui n'était pas abstraite, donc je n'aurais pas à implémenter de méthode supplémentaire.

Comment puis-je gérer cela? Est mon approche, ok?

Author: diegoaguilar, 2014-05-19

1 answers

Je ne suis pas sûr de comprendre vraiment la question, mais qu'est-ce qui ne va pas avec

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

    public static void setResultados(List<Pelicula> resultados) {
        YIFY.resultados.setAll(resultados);
    }
}
 1
Author: James_D, 2014-05-20 23:57:34