Salut,
Voici un extrait montrant ce que tu peux faire.
La Combo est faite en partant d'un tableau de tous les noms.
À partir de ce tableau, on en crée un second en ne prenant dans le premier que les noms qui commencent par ce qui est entré au clavier et c'est donc ce second tableau qui créera la combo:
// tableau (fantaisiste) de tous les noms:
String[] tableauNoms = {"Aaaaa", "Aabbb", "Abbbb", "Abccc", "Accccc", "Acdddd",
"Alain","Ali","Ali2","Ali3","Ali4","Ali5","Ali6","Ali7","Ali8","Ali9","Ali10",
"Baaaa", "Babbb", "Babcc", "Babcd", "Bbbbb", "Bbccc", "Bccccc", "Bcdddd",
"Moooonaaaa", "Mopqrstuvw", "Moprstuvwx", "Mppppobbbb", "Mpqqqrssss"};
int nombre = 0;
while(reSaisir)
{reSaisir false; // sera force a true si nombre 0
entreeClavier();
// comptage des noms qui commencent par laLettre (ou les lettres)
// si la lettre est ("*") on prend tout
for (int i = 0; i < tableauNoms.length; i++)
{
if (!laLettre.equals("*")) //c'est ce tableau qui sert a créer la combo
{
if (tableauNoms[i].startsWith(laLettre))
nombre++;
}
else
{
nombre++;
}
}
if
(nombre == 0)
{
javax.swing.JOptionPane.showMessageDialog
(
null,"Il n'y a pas de nom qui commence par " + laLettre,
titre, JOptionPane.INFORMATION_MESSAGE);
reSaisir =
true;
}
}
if (!reSaisir)
{
int j = 0;
String[] tableauReduit =
new String[nombre]; //c'est ce tableau qui sert a créer la combo
// on crée le tableau réduit (qui sera complet si la lettre est("*"))
for (int i = 0; i < tableauNoms.length; i++)
{
if (!laLettre.equals("*"))
{
if (tableauNoms[i].startsWith(laLettre))
{
tableauReduit[j] = tableauNoms[i];
j++;
}
}
else
{
// si laLettre est ("*") on prend tout.
tableauReduit[j] = tableauNoms[i];
j++;
}
}
// création de la combo box
listeNoms = new JComboBox(tableauReduit); // c'est ici qu'on crée la combo
listeNoms.setSelectedIndex(0); // selection par defaut du nom n° 1
listeNoms.addActionListener(this);
Plus la méthode entreeClavier:
public
void entreeClavier()
{
laLettre = (String)javax.swing.JOptionPane.showInputDialog
(
null, "Sortie par .\n\n"
+ "La valeur (*) par defaut permet d'obtenir la liste de tous les noms.\n\n" + lib,
titre,
javax.swing.JOptionPane.PLAIN_MESSAGE,
null, // icone (image)
null,
defaut); // valeur par defaut
try
{
int longueurSaisie laLettre.length(); // si longueur null
}
catch (NullPointerException npe)
{
String info = "\n\nSORTIE PAR \n\n"
+ " FIN";
javax.swing.JOptionPane.showMessageDialog
(
null,info,titre, JOptionPane.INFORMATION_MESSAGE);
System.exit(0);
}
}
Cordialement,
...\ Dan /...