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 : Sélectionner tout - Visualiser dans une fenêtre à part
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).
en effet, JAVA m'affiche une erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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(); }
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
Partager