Afficher tableau JTable avec un modeleDeTable
Bonsoir à tous, je suis sur un projet en Java, j'essaie actuellement de faire des test:
J'explique la situation :
- J'ai une classe Client avec ses accesseurs et autre méthode.
- Une fenêtre swing avec un JTable pour afficher les clients.
- Une classe modeleClients liée à mon JTable.
- La classe Main ou j'effectue des tests
Mon problème étant que je ne parvient pas à afficher ma liste de client dans mon JTable, je vous montre mon code :
Ma classe ModeleClients
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
|
public class ModeleClientsextends AbstractTableModel {
private final String[]entetesColumn = {"Numero client", "Type de contrat", "Nom", "Ville", "Rue", "N° rue",
"Code postale", "Téléphonne", "Téléphonne bis"};
private ArrayList<Client>ListClient = new ArrayList<Client>();
public ArrayList<Client> getListClient() {
return ListClient;
}
public void setListClient(ArrayList<Client> listClient) {
ListClient = listClient;
}
/**
* Retourne le nombre de ligne du modele
*/
@Override
public int getRowCount() {
return ListClient.size();
}
/**
* Retourne le nombre de colonne du modele
*/
@Override
public int getColumnCount() {
return entetesColumn.length;
}
/**
* Retourne le nom de la colonne à l'index columnIndex
*/
@Override
public String getColumnName(int columnIndex) {
return entetesColumn[columnIndex];
}
/**
* Retourne la valeur de la cellule à la valeur ligne/colonne
*/
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
switch(columnIndex) {
case 0 :
return ListClient.get(rowIndex).getIdClient();
case 1 :
return ListClient.get(rowIndex).getIdTypeClients();
case 2 :
return ListClient.get(rowIndex).getNomClient();
case 3 :
return ListClient.get(rowIndex).getVilleClient();
case 4 :
return ListClient.get(rowIndex).getRueClient();
case 5 :
return ListClient.get(rowIndex).getNumRueClient();
case 6 :
return ListClient.get(rowIndex).getCpClient();
case 7 :
return ListClient.get(rowIndex).getTel1Client();
case 8 :
return ListClient.get(rowIndex).getTel2Client();
default :
throw new IllegalArgumentException();
}
}
} |
Ma class Main (Je ne met pas tout le code) :
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
|
public class MainTestBis {
public static void main(String[] args) {
// TODO Auto-generated method stub
//Requete de type SELECT *;
ModeleClients monModele = new modeleClients ();
ArrayList<Client> LstClient = new ArrayList<Client>();
while(rs.next()) {
LstClient.add(new Client(rs.getInt("ID_CLIENT"), rs.getInt("ID_TYPE_CLIENT"), rs.getString("NOM_CLIENT"),
rs.getString("VILLE_CLIENT"), rs.getString("RUE_CLIENT"),
rs.getInt("NUM_RUE_CLIENT"),rs.getInt("CP_CLIENT"),rs.getInt("TEL_1_CLIENT"),
rs.getInt("TEL_2_CLIENT")));
}
monModele .setListClient(LstClient);
Fenetretest oFen = new Fenetretest();
rs.close();
stmt.close();
} catch (Exception e) {
e.printStackTrace();
}
}
} |
Et dans ma fenêtre je fais
Code:
JTable jTable = new JTable(new modeleClients());
Je récupère bien ma liste de client j'ai fait un test avec ma méthode getListClient(), le problème étant que je n'arrive pas à l'afficher, je n'ai que les entêtes de mes colonnes.
Merci de votre aide.