Il faut séparer la logique d'affichage ( la vue ) et la logique métier / persistence ( le "modèle" ).
Imaginons ceci :
une classe A d'affichage, avec une méthode printListeChamps() par exemple, affiche les éléments souhaités. Cette méthode, prend en paramètre un ArrayList ( c'est un objet Java qui fonctionne comme un tableau, mais dont la taille peut varier ) et à partir de cet ArrayList, affiche les champs dont tu as besoin.
une classe B de récupération de données, qui avec une méthode getElementsList() retourne un ArrayList avec les données dont tu as besoin ( en utilisant un ResultSet comme tu l'as fait )
Ta classe d'affichage peut au lancement de son affichage, appeler la méthode printListeChamps() avec en paramètre le ArrayList de ta méthode getElementsList(). Ainsi tu as séparé la vue du modèle. Vois-tu le principe ?
Dans ta méthode printListeChamps(), voici ce que tu pourrais avoir :
1 2 3 4 5
| public void printListeChamps(Collection<Element> listeElements) {
for(Element thisElement : listeElements) {
// Ici remplir les champs et les ajouter au panel ligne par ligne
}
} |
Et donc au démarrage de l'affichage de ta fenêtre :
1 2 3 4 5 6
| public class A {
public A() {
// Constructeur
printListeChamps(B.getElementsList());
}
} |
Partager