ObservableList, ComboBox et Base de Donnée
Bonjour à tous,
Je suis actuellement entrain de réaliser un projet dans le cadre de mon BTS, dans une application nous avons des champs mis en place avec JavaFX est une liste déroulante, la liste déroulante ( ComboBox ) doit afficher tous les locataires dans la Base de donnée par ( Nom/Prénom ) et dès qu'un locataire et sélectionné afficher dans les champs toutes les informations que l'on a mis dans l'observableList ( get depuis la base de donnée ) et bien sur s'actualiser dès que l'on change d'utilisateur dans la combobox.
Dis comme ça rien de compliquer mais ça fait une semaine que j'ai tout essayé impossible d'avoir tout qui marche j'ai déjà tout recommencé trois fois. Mon application utilise le modèle MVC, j'ai donc une class objet avec mon constructeur Utilisateur, une class BddUtilisateur ou je fais toutes mes requêtes et la class controller ou je gères la vue.
Le problème c'est que je n'ai jamais tout qui marche, la j'ai encore une fois recommencé avec une méthode "propre" d'après moi mais je n'arrives pas à get les values que je veux dans l'observableList, je vous mets on j'en suis si vous pourrez m'aider:
Objet Locataire :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130
|
package fr.thamos.kedarin.model;
import java.util.Date;
public class Locataire {
static int idLocataire;
static String civilite;
static String nom;
static String prenom;
static String adresse;
static String adresseSuite;
static int codePostal;
static String ville;
static int telF;
static int telP;
static String fax;
static String email;
static Date dateEntre;
static Date dateSortie;
static String observations;
static String locationCouple;
static int age;
static String profession;
static int fiabilite;
//******************** Constructeur du Locataire ********************//
public Locataire(int idLocataire, String civilite, String nom, String prenom, String adresse, String adresseSuite,
int codePostal, String ville, int telF, int telP, String fax, String email, Date dateEntre,
Date dateSortie, String observations, String locationCouple, int age, String profession,
int fiabilite) {
super();
Locataire.idLocataire = idLocataire;
Locataire.civilite = civilite;
Locataire.nom = nom;
Locataire.prenom = prenom;
Locataire.adresse = adresse;
Locataire.adresseSuite = adresseSuite;
Locataire.codePostal = codePostal;
Locataire.ville = ville;
Locataire.telF = telF;
Locataire.telP = telP;
Locataire.fax = fax;
Locataire.email = email;
Locataire.dateEntre = dateEntre;
Locataire.dateSortie = dateSortie;
Locataire.observations = observations;
Locataire.locationCouple = locationCouple;
Locataire.age = age;
Locataire.profession = profession;
Locataire.fiabilite = fiabilite;
}
public static int getIdLocataire() {
return idLocataire;
}
public static String getCivilite() {
return civilite;
}
public static String getNom() {
return nom;
}
public static String getPrenom() {
return prenom;
}
public static String getAdresse() {
return adresse;
}
public static String getAdresseSuite() {
return adresseSuite;
}
public static int getCodePostal() {
return codePostal;
}
public static String getVille() {
return ville;
}
public static int getTelF() {
return telF;
}
public static int getTelP() {
return telP;
}
public static String getFax() {
return fax;
}
public static String getEmail() {
return email;
}
public static Date getDateEntre() {
return dateEntre;
}
public static Date getDateSortie() {
return dateSortie;
}
public static String getObservations() {
return observations;
}
public static String getLocationCouple() {
return locationCouple;
}
public static int getAge() {
return age;
}
public static String getProfession() {
return profession;
}
public static int getFiabilite() {
return fiabilite;
}
} |
Controller Locataire:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
| package fr.thamos.kedarin.controler;
import java.net.URL;
import java.util.ResourceBundle;
import fr.thamos.kedarin.dao.BddLocataire;
import fr.thamos.kedarin.model.Locataire;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.ComboBox;
import javafx.scene.control.DatePicker;
import javafx.scene.control.TextField;
public class GestionView implements Initializable{
@FXML
private ComboBox<Locataire> comBoxLocataire;
@FXML
private TextField nom;
@FXML
private TextField prenom;
@FXML
private TextField adresse;
@FXML
private TextField adresseSuite;
@FXML
private TextField codePostal;
@FXML
private TextField ville;
@FXML
private TextField telF;
@FXML
private TextField telP;
@FXML
private TextField fax;
@FXML
private TextField email;
@FXML
private DatePicker dateentre;
@FXML
private DatePicker datesortie;
@FXML
private TextField observations;
@FXML
private TextField civilite;
public void initialize(URL arg0, ResourceBundle arg1) {
BddLocataire.lectureLocataire();
comBoxLocataire.valueProperty().addListener(new ChangeListener<Locataire>() {
@Override
public void changed(@SuppressWarnings("rawtypes") ObservableValue ov, Locataire t, Locataire t1) {
//
}
});
comBoxLocataire.setItems(BddLocataire.observableListLocataire);
}
} |
La recherche dans la BDD des Locataires :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
| package fr.thamos.kedarin.dao;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import fr.thamos.kedarin.model.Cste;
import fr.thamos.kedarin.model.Locataire;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
public class BddLocataire {
public static String requete;
public static Connection connection;
public static Statement stat;
public static ResultSet result;
public static ObservableList<Locataire> observableListLocataire = FXCollections.observableArrayList();
public static Locataire lectureLocataire() {
Locataire donnesLocataire = null;
connection = null;
stat = null;
result = null;
try {
connection = DriverManager.getConnection(Cste.url, Cste.login, Cste.passwrd);
stat = connection.createStatement();
requete = "Select * FROM locataire";
result = stat.executeQuery(requete);
while(result.next()) {
donnesLocataire = (new Locataire(result.getInt(1), result.getString(2),result.getString(3),result.getString(4),result.getString(5),result.getString(6),result.getInt(7),result.getString(8),result.getInt(9),result.getInt(10),result.getString(11),result.getString(12),result.getDate(13),result.getDate(14),result.getString(15),result.getString(16),result.getInt(17),result.getString(18),result.getInt(19)));
observableListLocataire.add(donnesLocataire);
}
} catch(SQLException e) {
e.printStackTrace();
} finally {
if (connection != null) try {
result.close();
stat.close();
connection.close();
} catch(SQLException ignore) {
}
}
return donnesLocataire;
}
} |
Merci à vous :)