Bonjour,
Voilà j'ai un JPanel qui contient des JTable. Lorsuqe je rentre une donnée dans un JTable je fais un controle que la donnée rentrée n'existe pas déjà. Si c'est le cas j'envoie une JDialog d'erreur (je fais ça dans setValueAt de mon TableModel). Le problème c'est qu'apparemment l'ouverture de cette boite de dialogue déclenche un nouveau setValueAt et je repasse donc par le même code et ma boite de dialogue s'affiche deux fois de suite. Avec mle code ça sera sans doute plus clair :
Et la méthode sendDialog fais tout simplement ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 public void setValueAt(Object value, int row, int col) { System.out.println("setValueAt"); data[row][col] = value; if ( col==0) { boolean ok=AdaptateurP.AdaptateurGroupe.modifierGroupe_Name( (String) data[row][oidCol], (String) value); if(!ok){ AdaptateurP.AdaptateurFenetreX.sendDialog("Nom de groupe déjà existant"); data[row][col] = nameDefault; return; } fireTableRowsUpdated( row, row); }
Voilà si je commente la ligne AdaptateurP.AdaptateurFenetreX.sendDialog("Nom de groupe déjà existant"); je ne passe bien qu'un seule fois dans ma méthode setValueAt().
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 public void sendDialog(String s){ JOptionPane.showMessageDialog(this, s,"Erreur!",JOptionPane.ERROR_MESSAGE); }
Auriez vous une idée de comment je peux m'y prendre pour éviter ce comportement?
Merci
Partager