Bonjour,

mon problème est le suivant :
j'ai un Jtable avec un nombre de cellule n.
je lui ai associé un model spécifique que j'ai créé.

Dans ce modèle j'ai surchargé la méthode de la classe mère
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
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
 
@Override
  public void setValueAt(Object p_Value, int p_iRowIndex, int p_iColumnIndex) {
    // ---------------------------------------------------------------------
    // Declaration de variables necessaires
  //-----------------------------------------------------------------------
    Cell cell = null;
 
    // ---------------------------------------------------------------------
    // on verifie avant que les valeurs sont des double
    // ---------------------------------------------------------------------
    if (m_MapValueAt != null) {
      m_Table = (JTable) getTableModelListeners()[0];
      // ------------------------------------------------------------------
      // on recupere la valeur saisie
      // ------------------------------------------------------------------
      cell = m_MapValueAt.get(p_iColumnIndex);
 
      if (cell != null) {
        try {
          if (p_Value instanceof Number) {
 
         //------------------------------------------------------------------
            // on test la valeur min et max
         //------------------------------------------------------------------
            checkValue(cell, (Number) p_Value);
 
         //------------------------------------------------------------------
            // on formatte la valeur
         //------------------------------------------------------------------
            if (p_Value instanceof Double) {
              super.setValueAt(FormatTools.formatValueDouble((Double) p_Value,
                  cell.getNbDecimal()), p_iRowIndex, p_iColumnIndex);
            }
            else {
              super.setValueAt(p_Value, p_iRowIndex, p_iColumnIndex);
            }
          }
        }
        catch (NumberFormatException e) {
          // ----------------------------------------------------------------
          // Affichage de l'erreur
          // ----------------------------------------------------------------
 
        }
      }
      else {
        super.setValueAt(p_Value, p_iRowIndex, p_iColumnIndex);
      }
    }
    else {
      super.setValueAt(p_Value, p_iRowIndex, p_iColumnIndex);
    }
  }
Ma question est la suivante : lorsque qu'une exception est levée je ne fais rien du coup l'ancienne valeur remplace la nouvelle valeur saisie.

Ce système ne me plait qu'à moitié, je préférerais que la cellule reste active avec le curseur dans la cellule, seulement je n'arrive pas à laisser le focus et la cellule editée.

Si vous pouviez m'aider merci beaucoup.