J'ai une JList, sur laquelle j'ai programmé un comportement sur le double clic : l'ouverture d'une JFrame, et le coloriage de la cellule cliquée en Rouge.

J'ai aussi programmé la fermeture de la JFrame, pour que lors du clic sur la croix, le CellRenderer de la JList remette la couleur de la cellule à sa valeur originale.

Le problème que j'ai, c'est que ce "raffraichissement" ne se fait pas, impossible de mettre à jour le Renderer.

Voici le code :
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
 
//code de la JList
public JList getJList_Flux() {
			jList = new JList();
			renderer_flux = new DefaultListCellRenderer() {
				public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus)
				{
					JLabel lbl = new JLabel(value.toString());
					lbl.setOpaque(true);
					if (indexes_flux[index])
					{	
						lbl.setBackground(Color.RED);
					}
					else
						if (index == list.getSelectedIndex())
							lbl.setBackground(new Color(191,213,239));
					return lbl;
				}
			};
			jList.setCellRenderer(renderer);
	}
 
//code du double clic, dans la méthode mouseClicked implémentée
indexes[jList.getSelectedIndex()] = true; //indexes, un tableau contenant les valeurs des lignes sélectionnées
 
//code de la fermeture de la JFrame
class ExitListener extends WindowAdapter {
  	  public void windowClosing(WindowEvent event) {
			f.stop();
			maIhm.getIndexes()[indice] = false; //indice, un attribut de la frame donnant l'indice correspondant dans la liste
  	  }
Merci de votre aide