Bonsoir,
mon probleme consiste a ajouter la methode annuler (undo ) seulement sans redo a ma JTable, je cherche la methode la plus simple, puisque je suis debutant, merci.
Voila ci dessous, mon modele de table :
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
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
public class TableModelFormules extends AbstractTableModel {
        private TableModel delegate;
        private UndoableEditSupport support = new UndoableEditSupport();
    private  List <Formule> Lignes= new ArrayList<Formule>();
    String Entetes[] = { "Identifiant de la Form","Designation", "Active", "Valide", "Verouiller" };
 
    public TableModelFormules() {
        super();
        ConnexionDB CD = new ConnexionDB();
        Lignes = CD.RecupererFormules();
    }
 
        public int getRowCount() {
        return Lignes.size();
        }
        public int getColumnCount() {
        return Entetes.length;
        }
        public String getColumnName(int columnIndex) {
        return Entetes[columnIndex];
        }
        public Object getValueAt(int rowIndex, int columnIndex) {
 
        switch(columnIndex){
                    case 0:
                        try{
                    return Lignes.get(rowIndex).getId_Form();
                        }
                        catch(ArrayIndexOutOfBoundsException e)
                        {
                        System.out.println("Probleme dans la selection de la ligne du JTable");
                        }
                    case 1:
                        try{
                    return Lignes.get(rowIndex).getDesignation_Form();
                        }
                        catch(ArrayIndexOutOfBoundsException e)
                        {
                        System.out.println("Probleme dans la selection de la ligne du JTable");
                        }
                    case 2:
                        try{
                    return Lignes.get(rowIndex).isActive_Form();
                        }
                        catch(ArrayIndexOutOfBoundsException e)
                        {
                        System.out.println("Probleme dans la selection de la ligne du JTable");
                        }
                    case 3:
                        try{
                    return (Object)Lignes.get(rowIndex).isValide_Form();
                        }
                        catch(ArrayIndexOutOfBoundsException e)
                        {
                        System.out.println("Probleme dans la selection de la ligne du JTable");
                        }
                    case 4:
                        try{
                    return (Object)Lignes.get(rowIndex).isVerouiller_Form();
                         }
                        catch(ArrayIndexOutOfBoundsException e)
                        {
                        System.out.println("Probleme dans la selection de la ligne du JTable");
                        }
                    default:
                    return null; //Ne devrait jamais arriver
                            }
 
 
        }
 
        @Override
        public Class getColumnClass(int columnIndex){
        switch(columnIndex){
            case 2:
                return Boolean.class;
            case 3:
                return Boolean.class;
            case 4:
                return Boolean.class;
        default:
        return Object.class;
                            }
 
        }
        @Override
        public boolean isCellEditable(int rowIndex, int columnIndex) {
            if((columnIndex == 0)||(columnIndex == 4))
                return false;
        return true; //Toutes les cellules éditables
        }
@Override
public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
            if(aValue != null){
            Formule F = Lignes.get(rowIndex);
            String temp;
            switch(columnIndex){
                case 0:
                    temp = String.valueOf(aValue);
                    F.setId_Form(temp);
                break;
                case 1:
                    F.setDesignation_Form(String.valueOf(aValue));
                    break;
                case 2:
                    F.setActive_Form((Boolean)aValue);
                break;
                case 3:
                    F.setValide_Form((Boolean)aValue);
                    break;
                case 4:
                    F.setVerouiller_Form((Boolean)aValue);
                    break;
                }
            }
 
    }
        public void AjoutFormule(Formule F) {
 
        F.Ajouter();
        this.Lignes.add(F);
        fireTableRowsInserted(Lignes.size() -1, Lignes.size() -1);
            }
        public void SuppressionFormule(int rowIndex) {
 
        Formule F = new Formule();
        Object O = new Object();
                for(int j = 0; j<getColumnCount(); j++)
                {
                O = getValueAt(rowIndex, j);
                F.SET(j, O);
                }
                boolean suppr = F.Supprimer();
                Lignes.remove(rowIndex);
                fireTableRowsDeleted(rowIndex, rowIndex);
            }
}
Merci d'avance de venir a mon aide.