bonsoir, je tente de faire un calendrier.
je voudrai arriver à faire la chose suivante :
lorsque la souris passe sur le jour, le jour change de couleur.
J'ai codé chaque jour dans un JLabel organisé dans un gridlayout et inséré dans un Jpanel.
J'ai ajouter un événement à mon JLabel mais rien n'y fait ça veut pas
Il ne veut pas changer mon foreground
voici mon code

Merci d'avance
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
53
54
55
56
 
class Cal extends JPanel   {
	Calendar calendar=new GregorianCalendar();
	private int jourC;
	private int jourAffiche;
	private JLabel jourGrille,jourAf;
	private MouseEvent e;
	private final String[]tabJour1={"Di","Li","Ma","Me","Je","Ve","Sa"};
	private final String[]tabJour2={"Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi"};
	private final String[]tabMois1={"janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"};
	private final Font fontJour=new Font("sherif",Font.ROMAN_BASELINE,10);
	public  Cal(){
 
		int [][]tab= tabCalendrier(calendar.get(Calendar.YEAR),calendar.get(Calendar.MONTH));
		GridLayout grille=new GridLayout(7,8);
		setLayout(grille);
		int val0,val1,val2;
		String valeurJour="";
		setBackground(new Color(211,4,3,180));
		for (val0=0;val0<7;val0++){
			valeurJour=tabJour1[val0];
			jourAf=new JLabel(valeurJour,SwingConstants.CENTER);
			jourAf.setToolTipText(tabJour2[val0]);
			this.add(jourAf);
		}
		for (val1=0;val1<6;val1++){
		for(val2=0;val2<7;val2++){
			jourC=tab[val1][val2];
			if (jourC==0){valeurJour="";}
			else{
				if(jourC<10){valeurJour=Integer.toString(jourC);}
				else{
				valeurJour=Integer.toString(jourC);}
			}
 
			jourGrille=new JLabel(valeurJour,SwingConstants.CENTER);
			jourGrille.setFont(fontJour);
		    jourGrille.addMouseMotionListener(new MouseAdapter()
		    {
		    public void mouseMoved( MouseEvent mouseEvent )
		    {
		      changementForeground(jourGrille);
		    }
		    });
 
			if(jourC==calendar.get(Calendar.DAY_OF_MONTH)){jourGrille.setForeground(Color.GRAY);
 
			}else{jourGrille.setForeground(Color.WHITE);}
			add(jourGrille);
 
		}	
		}
	}
	public void changementForeground(JLabel label){
		label.setForeground(Color.YELLOW);
	}
ps j'ai parcouru le forum et je suis tombé sur une pseudo explication pour un cas particulier où l'on a un seul label mais là j'ai ai au moins 31 hihihi