cid019
Messages postés237Date d'inscriptionmercredi 2 juin 2004StatutMembreDernière intervention11 juillet 2006
-
1 juil. 2004 à 08:17
cid019
Messages postés237Date d'inscriptionmercredi 2 juin 2004StatutMembreDernière intervention11 juillet 2006
-
1 juil. 2004 à 14:02
salut a tous,
vloila je souhaite trier un tableau issu d'un jtable mais sans utiliser de 'comparator' car trop compliqué.
je souhaite donc faire un bete tri classique en comparant element par element.
coila mon code:
else if (e.getSource() == cmbTri)
{
String temp = "";
int res = 0;
Vector[] vc = lignesModel.getVector();
for (int i = 0; i < vc.length; i++)
{
vc[i].toArray(new String[vc[i].size()]);
}
if (cmbTri.getSelectedItem() == "département")
{
String[] s3 = lignesModel.getColonne(3);
String[] s1 = new String[0];
String[] s2 = new String[0];
System.out.println(s3.length);
for (int i = 0; i < s3.length; i++)
{
for (int j = i+1; j < s3.length; j++)
{
res = s3[i].compareTo(s3[j]);
if (res > 0)
{
s1 = lignesModel.getLigne(i);
s2 = lignesModel.getLigne(j);
lignesModel.effacerLigne(j);
lignesModel.effacerLigne(i);
tblLignes.updateUI();
for (int k = 0;k < s1.length; k++)
{
temp = s1[k];
s1[k] = s2[k];
s2[k] = temp;
}
}
lignesModel.ajouterLigne(s1);
lignesModel.ajouterLigne(s2);
tblLignes.updateUI();
}
}
}
}
Le probleme que j'ai c'est qu'il ne me parcoure qu'un fois la premiere boucle...
enfin bref il me fait q'un parcours et je sais pas pq.
du coup quand j'ai deux elements ca marche mais des qu'il y en a plus il m'en tri que deux puis me rejoute des elements a la pelle...
repondez moi vite, c'est assez pressant...
Merci...
cid019
cid019
Messages postés237Date d'inscriptionmercredi 2 juin 2004StatutMembreDernière intervention11 juillet 2006 1 juil. 2004 à 13:30
moi je veux bien...
seulement ma jtable est construite a partir d'un Vector[] avec un nombre de colonnes paramétrables.
de plus tous les comparator que j'ai vu jusqu'a present utilisaient soit des Object[][] soit des jtable prerempli or moi la jtable peut avoir une, deux ,...., un certains nombre de lignes rempli au fur et a mesure et je veux pouvoir trier ma jtable a n'importe quel moment...
cid019
cid019
Messages postés237Date d'inscriptionmercredi 2 juin 2004StatutMembreDernière intervention11 juillet 2006 1 juil. 2004 à 14:02
bon je suis parti sur un systeme classqiue te je suis sur que c'est faisable.
public String[] getTabLigne(String[][] ch, int index)
{
String[] res = new String[14];
for (int i = 0; i < 14; i++)
{
res[i] = ch[index][i];
System.out.println(res[i]);
}
return res;
}
String temp = "";
int res = 0;
Vector[] vc = lignesModel.getVector();
for (int i = 0; i < vc.length; i++)
{
vc[i].toArray(new String[vc[i].size()]);
}
if (cmbTri.getSelectedItem() == "département")
{
String[] s3 = lignesModel.getColonne(3);
String[] s = new String[lignesModel.getNbCol()];
// recupere le contenu de la JTable
String[][] s4 = lignesModel.getLignes(s3.length);
//tri du tebleau
Arrays.sort(s3);
lignesModel.effacerTout();
tblLignes.updateUI();
for (int i = 0; i < s3.length; i++)
{
for (int j = 0; j < s4.length; j++)
{
for (int k = 0; k < lignesModel.getNbCol(); k++)
{
if (s3[i].equalsIgnoreCase(s4[j][k]))
{
s = getTabLigne(s4, j);
lignesModel.ajouterLigne(s);
tblLignes.updateUI();
}
}
}
}
voila mon nouvel algo. il me retourne qqch mais pas le bon truc, si tu trouves le bug, je suis preneur.
En revanche si t'arrives a me trouver un Comparator qui marche avec mon model de JTable pas de pb je prend aussi...
cid019