Faatalis
Messages postés74Date d'inscriptionjeudi 23 novembre 2000StatutMembreDernière intervention30 juillet 2010
-
13 févr. 2008 à 20:38
Faatalis
Messages postés74Date d'inscriptionjeudi 23 novembre 2000StatutMembreDernière intervention30 juillet 2010
-
14 févr. 2008 à 18:44
Bonsoir
Je cherche à utiliser une JList, dans l'ensemble j'y arrive.
Mon problème arrive quand je souhaite supprimer l'élément séléctionné,
J'utilise : "ModeleCouleur.removeElement(listeCouleur.getSelectedValue());"
ModeleCouleur étant mon DefaultListModel(),
et listeCouleur ma JList.
ça, ça fonctionne !!
Sauf si j'utilise un ListSelectionEvent (dont j'ai besoin).
Code de mon ListSelectionEvent :
listeCouleur.addListSelectionListener(
new ListSelectionListener() {
public void valueChanged( ListSelectionEvent e )
{
c.setBackground(
couleurs[ listeCouleur.getSelectedIndex() ] );
}
}
);
Dans ce cas, il me met une exception quand je veux supprimer :
ArrayIndexOutOfBoundsException : -1
Je suppose que supprimer l'élement séléctionné notifi un changement dans la JList,
mais que, puisqu'il a été supprimé, le ListSelectionEvent ne trouve pas l'élément.
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 14 févr. 2008 à 07:12
Salut,
Y'a un truc que je comprends pas trop : d'un côté tu fais : listeCouleur.getSelectedValue() histoire de supprimer la couleur sélectionnée
Et dans ton listener : listeCouleur.getSelectedIndex() histoire de récupèrer l'index sélectionné... mais si tu supprime une ligne, il n'y a plus d'index sélectionné, et donc getSelectedIndex() doit te renvoyer -1, d'où cette erreur je pense !
Fais donc :
listeCouleur.addListSelectionListener(
new ListSelectionListener() {
public void valueChanged( ListSelectionEvent e )
{
if (listeCouleur.getSelectedIndex() >= 0) { c.setBackground(couleurs[ listeCouleur.getSelectedIndex() ] );
}
}
}
);
______________________________________
DarK Sidious
Faatalis
Messages postés74Date d'inscriptionjeudi 23 novembre 2000StatutMembreDernière intervention30 juillet 2010 14 févr. 2008 à 18:44
Salut
Merci pour l'info, c'est ce qu'il me fallait.
J'avais pensé à récupérer la valeur dans un Int,
et utiliser un clearSelection().
Mais ton système est nickel !!
Sinon, y a t'il un moyen de savoir
si un élément (n'importe lequel) de la JList est séléctionné,
ou si aucun ne l'est.
L'idée est d'activer ou de désactiver le bouton de suppresion.