Comment vider le contenu (les lignes) du JTable

Résolu/Fermé
ajp55 Messages postés 426 Date d'inscription dimanche 31 juillet 2011 Statut Membre Dernière intervention 17 février 2015 - 6 janv. 2013 à 14:16
ajp55 Messages postés 426 Date d'inscription dimanche 31 juillet 2011 Statut Membre Dernière intervention 17 février 2015 - 6 janv. 2013 à 15:31
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.

A voir également:

1 réponse

KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
6 janv. 2013 à 14:45
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 426 Date d'inscription dimanche 31 juillet 2011 Statut Membre Dernière intervention 17 février 2015 23
6 janv. 2013 à 15:11
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 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
Modifié par KX le 6/01/2013 à 15:29
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 426 Date d'inscription dimanche 31 juillet 2011 Statut Membre Dernière intervention 17 février 2015 23
6 janv. 2013 à 15:31
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