problème de tri dans un JTable après une suppression et vice versa
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:
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:
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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
public 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());
}
} |