Récupérer la valeur d'une cellule avant sa modification
Bonjour,
J'ai un JTable dans lequel une cellule est éditable. Lorsque l'utilisateur saisie une valeur, je teste si elle est correcte et si elle ne l'est pas, je réaffecte à la cellule l'ancienne valeur. Enfin, ça c'est ce que j'aimerai faire :)
En effet, grâce à l'ajout d'un TableModelListener au Jtable, je détecte bien la modification de la cellule et j'arrive bien à tester la nouvelle valeur, mais je n'arrive pas à récupérer l'ancienne valeur.
Peut être faut-il passer par autre chose que le TableModelListener?
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
|
private class CellChangedListener implements TableModelListener {
public void tableChanged(TableModelEvent tableEvent) {
int column = tableEvent.getColumn();
int row = tableEvent.getFirstRow();
if (tableEvent.getType() == TableModelEvent.UPDATE) {
if (column == _colonneSurface){
//Vérification de la surface indiquée
Double surfMax =150;
Double surfIndiquee = (Double) getValueAt(row, column);
if (surfMax != null && surfIndiquee != null){
if (surfMax<surfIndiquee){
//Affichage d'une boite de dialogue
JOptionPane.showMessageDialog(TableauPanel.this,"La surface ne peut pas être plus grande que " + surfMax);
//On remet l'ancienne surface
Double surfPre = ????
_tableau.getModel().removeTableModelListener(this);
setValueAt(surfMax,row,column);
_tableau.getModel().addTableModelListener(this);
}
}
}
}
}
} |
Merci pour votre aide.