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.

1 réponse

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
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
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
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