OVH Cloud OVH Cloud

JComboBox

1 réponse
Avatar
Sylvain Pons
Peut-on trier directement un JComboBox par alphabétique de manière plus
simple ?
J'utilise actuelement cette fonction :
avec Arrays.sort(tableau);

private void LectureFicCombo (String fichier, JComboBox combo) throws
Exception
{
try
{
FileReader fr = new FileReader(fichier);
BufferedReader br = new BufferedReader(fr);
ArrayList tabdyn = new ArrayList();
String ligne;
boolean fin = false;
int taille=0;
while(!fin)
{
ligne = br.readLine();
if (ligne!=null) tabdyn.add(ligne);
else fin = true;
}
br.close();
taille = tabdyn.size();
String[] tableau = new String[taille];
for(int i=0; i<taille; i++)
tableau[i] = tabdyn.get(i).toString();
Arrays.sort(tableau);
for (int i=0; i<taille;i++)
combo.addItem(tableau[i]);
}

Merci d'avance à tous...

1 réponse

Avatar
Joris Mychalski
Tu peux utiliser un SortedSet à la place de ton ArrayList :

try
{
FileReader fr = new FileReader(fichier);
BufferedReader br = new BufferedReader(fr);
SortedSet tabdyn = new TreeSet();
String ligne;
boolean fin = false;
while(!fin)
{
ligne = br.readLine();
if (ligne!=null) tabdyn.add(ligne);
else fin = true;
}
br.close();
Iterator it = tabdyn.iterator()
while (it.hasNext())
{
combo.addItem(it.next());
}
}

"Sylvain Pons" a écrit dans le message de news:
d2ggnd$nln$
Peut-on trier directement un JComboBox par alphabétique de manière plus
simple ?
J'utilise actuelement cette fonction :
avec Arrays.sort(tableau);

private void LectureFicCombo (String fichier, JComboBox combo) throws
Exception
{
try
{
FileReader fr = new FileReader(fichier);
BufferedReader br = new BufferedReader(fr);
ArrayList tabdyn = new ArrayList();
String ligne;
boolean fin = false;
int taille=0;
while(!fin)
{
ligne = br.readLine();
if (ligne!=null) tabdyn.add(ligne);
else fin = true;
}
br.close();
taille = tabdyn.size();
String[] tableau = new String[taille];
for(int i=0; i<taille; i++)
tableau[i] = tabdyn.get(i).toString();
Arrays.sort(tableau);
for (int i=0; i<taille;i++)
combo.addItem(tableau[i]);
}

Merci d'avance à tous...