Bonjour,
J'ai un JTable. Les opérations de tri et de suppression marchent bien séparement. MAIS si je fais un tri, puis je décide de supprimer un élément (et vice versa) ça ne marche plus , ça fait un ArrayIndexOutOfBoundException...pourtant je croyais avoir mis à jour mon modèle...Je ne sais pas ce qui ne va pas.
Je vous donne ci-après la classe de tri, puis la classe de suppression, et enfin la méthode de mise à jour dans ma Vue.
Merci d'avance pour tout!!!!!!!!
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 public class TrierTableau_v4 extends AbstractAction implements ActionListener { private VueTableau_v4 fen; public TrierTableau_v4(VueTableau_v4 fen,String texte){ super(texte); this.fen = fen; } public void actionPerformed(ActionEvent e) { NgramModel_v4 m = fen.getNgramModel(); m.sort(1); // on trie la colonne où il y a les occurences System.out.println("Vous avez cliqué sur Trier"); System.out.println("premier élément après tri: "+ m.getValueAt(0, 0)); //on raffraichit la Jtable fen.miseAJour(); } }
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 public class SupprimerTableau_v4 extends AbstractAction implements ActionListener{ private VueTableau_v4 fen; public SupprimerTableau_v4(VueTableau_v4 fen,String texte){ super(texte); this.fen=fen; } public void actionPerformed(ActionEvent e) { NgramModel_v4 m = fen.getNgramModel(); ArrayList<String> maListe = m.getNgramSelected(); System.out.println("vous voulez supprimer: "+Outils_v4.contenu(maListe)); m.supprimer(maListe); System.out.println("Vous avez cliqué sur Supprimer"); // raffraichissement des données dans le modèle fen.miseAJour(); } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14public void miseAJour() { // on raffraichit la table System.out.println("je mets à jour l'affichage du tableau"); table.setModel(model_v4); if(table.getRowCount()>0){ TableColumn col = table.getColumnModel().getColumn(2); col.setCellEditor(new MyCellEditor_v4()); col.setCellRenderer(new MyCellRenderer_v4()); etiquetteTotalN.setText("total Ngrames : " + model_v4.getTotalNgram()); etiquetteTotalNDist.setText("total Ngrames distincts : "+ model_v4.getTotalNgramDist()); } }







Répondre avec citation
Partager