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).
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();
     }
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