Bonjour à tous, dans mon application je souhaite que lors d'un clique sur un nom contenu dans ma JList, le JLabel qui se trouve à coté et qui est en faite une image s'actualise en fonction du nom sélectionné.
Jusqu'à maintenant je n'ai aucun problème pour faire cela dans le cas ou l'image existe. Je m'explique, imaginons que je clique sur Jean et que j'ai bien une image Jean.jpg alors l'image en question s'affiche, puis si je clique sur Dupond, l'image Dupond.jpg s'affiche bien, mais mon problème se trouve dans le faite que je veux que lors d'un clique sur un nom une image ce crée (j'arrive parfaitement à créer l'image désiré), mais la problème l'image à beau être créé, etc... L'appli ne veux pas m'actualiser l'affichage et m'affiche un vide comme si l'image n'existait pas
Un peu de code :
J'ai supprimer le code superflu, j'espère que quelqu'un pourra m'aider
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
44
45
46
47
48
49
50
51
52 public PanelLocalise(Pays lePays, String[] tabCommunes){ arrayCommunes = tabCommunes; //La liste listCommunes = new JList(arrayCommunes); listCommunes.addListSelectionListener(this); JScrollPane listScrollPane = new JScrollPane(listCommunes); //L'image picture = new JLabel(); JScrollPane pictureScrollPane = new JScrollPane(picture); //Crée un split pane avec deux pane scrollable. //code supprimer pour rendre plus lisible... this.add(splitPane); } //Listens du JList public void valueChanged(ListSelectionEvent e) { JList listCommunes = (JList)e.getSource(); updateLabel(arrayCommunes[listCommunes.getSelectedIndex()]); } //Actualise l'image protected void updateLabel (String name) { ImageIcon icon = createImageIcon("images/carteFrance.gif"); picture.setIcon(icon); if (icon != null) { picture.setText(null); } } /** Retourne un ImageIcon, ou null si le chemin n'est pas valide. */ protected static ImageIcon createImageIcon(String path) { java.net.URL imgURL = PanelLocalise.class.getResource(path); if (imgURL != null) { // try { // BufferedImage image = ImageIO.read(imgURL); // Graphics2D g2d = image.createGraphics(); // on récupère le contexte graphique de la BufferedImage // g2d.setColor( Color.red ); // on met l'état de couleur rouge à la BufferedImage // g2d.fillOval( 30, 30, 10, 10 ); // on dessine un cercle de centre x=30 y=30 et de rayon=100 // g2d.dispose(); //on libère la mémoire utilisée pour le contexte graphique // ImageIO.write(image, "gif", new File("src/images/carteFrance.gif")); // } catch (IOException e) { // // TODO Auto-generated catch block // e.printStackTrace(); // } return new ImageIcon(imgURL); } }
Si il manque quelque chose n'hésitez pas à demander![]()
Partager