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 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153
|
public class PerssonnesModel extends AbstractTableModel {
private Vector vecteur; //tes données !
private String[] colonnes = { " NOM ", " PRENOM ", " Age " };
/**
* Constructeur du modèle de table
*/
public PerssonnesModel() {
super();
vecteur = lire(); //ok ! on charge par ta méthode lire tes données !
}
/**
* Retourne le nombre de lignes à afficher :
* c'est le nombre de lignes total de ton vecteur
* @return
*/
@Override
public int getRowCount() {
return vecteur.size();
}
/**
* Retourne toujours 3 colonnes :
* - 0 : NOM
* - 1 : PRENOM
* - 2 : AGE
* @return
*/
@Override
public int getColumnCount() {
return colonnes.length;
}
/**
* Retourne le nom des entêtes de colonne
* @param column
* @return
*/
@Override
public String getColumnName(int column) {
String name = "";
try {
name = colonnes[column];
} catch (ArrayIndexOutOfBoundsException ex) {
name = super.getColumnName(column);
}
return name;
}
/**
* Retourne les valeurs liées aux 3 colonnes selon la ligne du tableau :
* - 0 : NOM
* - 1 : PRENOM
* - 2 : AGE
* @return
*/
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
Object value = "";
try {
Personne personne = (Personne) vecteur.get(rowIndex);
switch(columnIndex) {
case 0:
value = personne.getNom();
break;
case 1:
value = personne.getPrénom();
break;
case 2:
value = personne.getAge();
default:
value = "";
}
} catch (Exception ex) {}
return value;
}
/**
* mise à jour de la cellule
* @param value
* @param row
* @param col
*/
@Override
public void setValueAt(Object value, int row, int col) {
if (col>2) return;
Personne personne = vecteur.get(row);
String val = value.toString();
switch(columnIndex) {
case 0:
personne.setNom(val);
break;
case 1:
personne.setPrénom(val);
break;
case 2:
personne.setAge(val);
}
fireTableDataChanged(); //evt de AbstractModel
// puis mettre à jour bdd ou fichier ....
}
public void insertValue(Personne p) {
vecteur.add(p);
fireTableDataChanged(); //evt de AbstractModel
// puis mettre à jour bdd ou fichier ....
}
} |
Partager