Как использовать несколько универсальных типов для таблицы? - PullRequest
0 голосов
/ 01 ноября 2019

Я делаю приложение с JavaFX для университетского проекта, чтобы управлять данными в базе данных mysql и списке. Я должен отобразить данные в виде таблицы. Но табличное представление допускает только один класс POJO. Как я могу сделать соединение между двумя классами POJO? (как функция SQL Join)

Я пытался создать буферный класс, но я не понимаю, как это сделать и как его использовать.

Класс контроллера:

public class RevuesController implements Initializable, ChangeListener<Revue> {
    --- 

    @FXML private TableView<Revue> revuesTable;
    @FXML private TableColumn<Revue, String> titleCol = new TableColumn<>("Titre");
    @FXML private TableColumn<Revue, String> descCol = new TableColumn<>("Description");
    @FXML private TableColumn<Revue, Double> priceCol = new TableColumn<>("Tarif numéro");
    @FXML private TableColumn<Revue, String> visualCol = new TableColumn<>("Visuel");
    @FXML private TableColumn<Periodicite, String> periodCol = new TableColumn<>("Périodicité");
    @FXML private TableColumn<Integer, String> aboCol = new TableColumn<>("Abonnements en cours");

------

@Override
    public void initialize(URL arg0, ResourceBundle arg1) {
        ObservableList<Revue> oListRevue = FXCollections.observableArrayList();
        try {
            oListRevue = FXCollections.observableArrayList(daos.getRevueDAO().getAll());
        } catch (Exception e) {
            System.out.println("Erreur de récupération des données de revue : " + e.getMessage());
            e.printStackTrace();
        }

        this.titleCol.setCellValueFactory(new PropertyValueFactory<Revue, String>("titre"));
        this.descCol.setCellValueFactory(new PropertyValueFactory<Revue, String>("description"));
        this.priceCol.setCellValueFactory(new PropertyValueFactory<Revue, Double>("tarif_numero"));
        this.visualCol.setCellValueFactory(new PropertyValueFactory<Revue, String>("visuel"));
        this.periodCol.setCellValueFactory(new PropertyValueFactory<Periodicite, String>("libelle"));
        this.aboCol.setCellValueFactory(new PropertyValueFactory<Integer, Integer>(""));

        this.revuesTable.getColumns().setAll(titleCol, descCol, priceCol, visualCol, periodCol, aboCol);

        FilteredList<Revue> fListRevue = new FilteredList<>(oListRevue);
        this.revuesTable.getItems().addAll(fListRevue);

    }

Редакция класса POJO:

public class Revue {
    private int id_revue;
    private String titre;
    private String description;
    private double tarif_numero;
    private String visuel;
    private int id_periodicite;

    public Revue() {}

    public Revue(String titre, String description, double tarif_numero, String visuel, int id_periodicite) {
        this.id_revue = -1;
        this.titre = titre;
        this.description = description;
        this.tarif_numero = tarif_numero;
        this.visuel = visuel;
        this.id_periodicite = id_periodicite;
    }

    public Revue(int id_revue, String titre, String description, double tarif_numero, String visuel, int id_periodicite) {
        this.id_revue = id_revue;
        this.titre = titre;
        this.description = description;
        this.tarif_numero = tarif_numero;
        this.visuel = visuel;
        this.id_periodicite = id_periodicite;
    }

    public int getId_revue() {
        return id_revue;
    }

    public void setId_revue(int id_revue) {
        this.id_revue = id_revue;
    }

    public String getTitre() {
        return titre;
    }

    public void setTitre(String titre) {
        this.titre = titre;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public double getTarif_numero() {
        return tarif_numero;
    }

    public void setTarif_numero(double tarif_numero) {
        this.tarif_numero = tarif_numero;
    }

    public String getVisuel() {
        return visuel;
    }

    public void setVisuel(String visuel) {
        this.visuel = visuel;
    }

    public int getId_periodicite() {
        return id_periodicite;
    }

    public void setId_periodicite(int id_periodicite) {
        this.id_periodicite = id_periodicite;
    }

Периодическая запись класса POJO:

public class Periodicite {
    private int id;
    private String libelle;

    public Periodicite(int id, String libelle) {
        this.id = id;
        this.libelle = libelle;
    }

    public Periodicite(String libelle) {
        this.id = -1;
        this.libelle = libelle;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getLibelle() {
        return libelle;
    }

    public void setLibelle(String libelle) {
        this.libelle = libelle;
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...