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 : Sélectionner tout - Visualiser dans une fenêtre à part
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.