Bonjour à tous

je réalise un projet Java pour mon examen et j'ai un problème d'affichage d'image :
- J'ai une fenetre principale dans laquelle se trouve une JCombobox qui contient une liste d'images (avec un espace en 1ère valeur pour symboliser le champs vide).

- En dessous j'ai un JLabel qui affiche l'image qui sera sélectionnée dans la JCombox, avec une image par défaut.

Bien entendu, je voudrais que quand on sélectionne une image dans la JCombobox, elle s'affiche immédiatement dans le JLabel.
Les images sont très petites, et toutes stockées dans un package "Images"

J'ai au départ bêtement fait un
cadreIMG = new JLabel(new ImageIcon("src/Images/blank.jpg") );
pour afficher l'image par défaut. Le problème s'est corsé à partir du moment où je voulais que cette image se modifie en fonction du choix dans la combobox...

Après moult lectures et différents essais, je me suis arrêté sur la méthode ImageIO, et suis parvenu à afficher mon image par défaut avec :
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
 
//en tête de la classe
	JComboBox menuImage;
	JLabel cadreIMG;
	BufferedImage buffImg;
	File f;
....
 
// dans le constructeur
menuImage = new JComboBox(new String[]{" ","surgele BOEUF"});
 
f = new File("src/Images/blank.jpg");
		try {
			buffImg = ImageIO.read(f);
			cadreIMG = new JLabel(new ImageIcon(buffImg) );			
		}catch (IOException e) {
			e.printStackTrace();
		}
donc jusque là tout va bien


et c'est là que je suis en galère :
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
 
// écouteur de la Jcombobox
	public class SelecImage implements ActionListener{	
		public void actionPerformed(ActionEvent e) {		
			System.out.println("selection image OK");
			String typeIMG = (String) menuImage.getSelectedItem();
			if (typeIMG.equals("surgele BOEUF")){
 
				f = new File("src/Images/surgel_boeuf.jpg");							
				try {
					buffImg = ImageIO.read(f);
					cadreIMG = new JLabel(new ImageIcon(buffImg) );
					System.out.println("test affichage image surgele boeuf");
					cadreIMG.revalidate();
 
				}catch (IOException e2) {
					e2.printStackTrace();
				}	
			}
		}
	}
je me rend bien compte que je ne devrais pas faire de
cadreIMG = new JLabel(new ImageIcon(buffImg) );
dans l'écouteur, mais je ne trouve pas la bonne syntaxe

un petit coup de main serait bienvenu, merci