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
| public class GestionUrgenceCliniqueVeterinaire extends AbstractTableModel {
public enum Colonne {
NOM_PATIENT("Nom du patient", String.class),
AGE_PATIENT("Age du patient", String.class), // c'est ce que je vois dans ton code, mais ce serait plus logique d'avoir un nombre plutôt qu'une chaine de caractère
ESPECE("Espece", String.class),
//etc je mets pas tout tu complèteras
;
private final String colName;
private final Class<?> colClass;
/**
*
* @param name nom de la colonne
* @param colClass type java de la donnée
*/
private Colonne(String name, Class<?> colClass) {
this.colName=colName;
this.colClass=colClass;
}
}
private List<Patient> uneListe;
public GestionUrgenceCliniqueVeterinaire() {
uneListe = new ArrayList<Patient>();
}
@Override
public int getColumnCount() {
return Colonne.values().length;
}
@Override
public int getRowCount() {
return uneListe.size();
}
@Override
public Class<?> getColumnClass(int col) {
return Colonne.values()[col].colClass;
}
public String getColumnName(int col) {
return Colonne.values()[col].colName;
}
@Override
public boolean isCellEditable(int arg0, int arg1) {
return false;
}
public void addPatient(Patient patient) {
int index = uneListe.size();
uneListe.add(patient);
fireTableRowsInserted(index, index); // averti la jtable qu'il y a une nouvelle ligne
}
@Override
public Object getValueAt(int row, int col) {
Patient patient = uneListe.get(row); // le patient à la position row
switch(Colonne.values()[col]) {
case NOM_PATIENT:
return patient.getNom();
case AGE_PATIENT:
return patient.getAge();
case ESPECE:
return patient.getEspece();
default:
return null;
}
}
} |
Partager