Comment vider le contenu (les lignes) du JTable

Résolu
ajp55 Messages postés 482 Statut Membre -  
ajp55 Messages postés 482 Statut Membre -
Bonjour,
Suis débutant en java et j'ai écrit programme qui utilise un JTable.
Mon JTable est contenu dans un scrollpane pour permettre les barre de defilement.
A la contruction, je rempli les donnes dans le JTable en faisant
String[] colonne = {"Tour","Player"};
String[][] lignes = {
		{ "01", "02"},
		{ "02", "12"},
		{ "21", "22"},
		};
JTable maTable = new JTable(lignes,colonne);
JScrollPane jscr = new JScrollPane (maTable);

Il se rempli bien.Apres un certain nombre d'execution, j'ai eu besoin de supprimé seulement les ligne du JTable, mais rien. Voici le code:
maTable.removeRowSelectionInterval(0, maTable.getRowCount() - 1);
maTable.validate();
jscr.validate();

ça n'a pas marché. j'ai fais
maTable.removeAll();
toujour rien.

quelqu'un pourrait-il m'aider?
Merci d'avance pour vos réponses.


--
"L'ordinateur est une grande invention : il y a autant d'erreur qu'avant mais plus personne n'est responsable..."

1 réponse

  1. KX Messages postés 19031 Statut Modérateur 3 020
     
    Ce serait mieux d'utiliser un TableModel pour manipuler les données :

    String[] colonne = {"Tour","Player"};
    String[][] lignes = {{"01","02"},{"02","12"},{"21","22"}};
    
    DefaultTableModel model = new DefaultTableModel(lignes,colonne);
    	
    JTable maTable = new JTable(model);
    
    model.addRow(new String[] {"11","10"}); // ajout d'une ligne à la fin
    model.removeRow(n); // suppression de la ligne 'n'
    model.setRowCount(0); // suppression de toutes les lignes
    0
    1. ajp55 Messages postés 482 Statut Membre 23
       
      toujour rien. En fait, lorsque je redefini un nouveau TableModel en faisant
      JTable maTable = new JTable(new DefaultTableModel(lignes, colonne);
      dans ce cas ca marche, car il pert le pointeur sur l'ancien ModelTable. *
      Merci pour votre réponse.
      En effet, j'utilise un model et c'est une fonction qui renvoi ce model. En essayant de faire comme vous l'avez dite, j'ai déclarer model comme propriete de la classe, et au moment de vider les lignes, j'ai donc fait
      model.setRowCount(0)
      , mais rien.
      Meri
      0
    2. KX Messages postés 19031 Statut Modérateur 3 020
       
      Tu peux essayer une alternative un peu moche :

      while (model.getRowCount()!=0)
          model.removeRow(0);

      Ou de manière équivalente :

      for (int n=model.getRowCount()-1; n>=0; n--)
          model.removeRow(n);
      0
    3. ajp55 Messages postés 482 Statut Membre 23
       
      thk, le
      model.setRowCount(0)
      marche, en effet, il fallait refaire apres cela
      maTable.setModel(model)
      que que cela prenne effet.
      Merci pour ton aide.
      0