Tableau jtable

cid019 Messages postés 237 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 11 juillet 2006 - 1 juil. 2004 à 08:17
cid019 Messages postés 237 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 11 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

3 réponses

wargre Messages postés 649 Date d'inscription mardi 8 juin 2004 Statut Membre Dernière intervention 9 septembre 2004 7
1 juil. 2004 à 10:11
Comparateur trop compliqué??????

pourtant en trois ligne c'est fait!
0
cid019 Messages postés 237 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 11 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
0
cid019 Messages postés 237 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 11 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
0
Rejoignez-nous