Problème avec un ListSelectionListener (CastException!)
Bonsoir à tous.
Je suis entrain de créer une interface graphique.
A un moment donné, j'ai eu besoin de créer une liste de String et de l'afficher dans un scrollPanel.
j'asscie ensuite un lsitSelectionListener à ces éléments pour qui'ils répondent à une fonction précise.
voila le corps de ma classe ModificationListener qui implémente ListSelectionListener :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
| public class ModificationListener implements ListSelectionListener {
private JLabel espaceImage;
public ModificationListener(JLabel espaceImage){
this.espaceImage=espaceImage;
}
public void valueChanged(ListSelectionEvent evt) {
try {
this.espaceImage.setIcon(getImageIconTransf((String)((JList)evt.getSource()).
getSelectedValue()));
} catch (IOException e) {
e.printStackTrace();
}
}
public ImageIcon getImageIconTransf(Object string) throws IOException {
ImageIcon imtransf = null;
if (string.equals("Derivateur")) {
System.out.println(this.espaceImage.getIcon().toString());
File fic = new File(this.espaceImage.getIcon().toString());
MonImage image_ = new MonImage("", fic, null);
ImageIcon imtransftemp = new ImageIcon("C:/"
+ image_.transformer(new Derivateur()).getFile().getName());
imtransf = imtransftemp;
} else if (string.equals("Moyenneur")) {
System.out.println(this.espaceImage.getIcon().toString());
File fic = new File(this.espaceImage.getIcon().toString());
MonImage image_ = new MonImage("", fic, null);
ImageIcon imtransftemp = new ImageIcon("C:/"
+ image_.transformer(new Moyenneur(5)).getFile().getName());
imtransf = imtransftemp;
} |
seulement voila, j'ai deux problème:
le premier concernant le Cast (STring).
Code:
1 2 3 4 5 6 7
| public void valueChanged(ListSelectionEvent evt) {
try {
this.espaceImage.setIcon(getImageIconTransf((String)((JList)evt.getSource()).
getSelectedValue()));
} catch (IOException e) {
e.printStackTrace();
} |
en effet, JAVA m'affiche une erreur :
Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: java.lang.String cannot be cast to com.sun.org.apache.xpath.internal.operations.String!!
savez vous comment régler ce problème ? (en fait, hier mon programme marchait sans problème!! je sais pa ce que j'ai changé et qui a fait que mon Eclipse n'aime plus les casts!!!)
le deuxième problème est que, quand je selectionne un element de la liste, le Listener tourne l'algorithme deux fois de suite!
Cordialement