IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AWT/Swing Java Discussion :

event et jlabel


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2005
    Messages : 32
    Par défaut event et jlabel
    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

  2. #2
    Membre éprouvé
    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    104
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 104
    Par défaut
    je ne peux pas lire ton code sur mon téléphone, mais si tu connais précisément la position et la taille de chaque label, tu peux ajouter un mousemove à ton jpanel et croiser la position x et y de la souris avec la position des labels.
    On doit pouvoir faire ça encore plus facilement avec des mouseentered.
    Au pire, remplace tes labels par des boutons, t'auras rien à faire

  3. #3
    Membre éclairé Avatar de rems033
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    513
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2007
    Messages : 513
    Par défaut
    Je pense que dans ton cas il te faut utiliser le mouseEntered(MouseEvent me)
    Tu lui associe ensuite la methode de changement de couleur.

    Et pourrait-on voir ta méthode de changement de couleur?
    Tu fais bien un JFrame.validate() ainsi qu'un repaint() ?
    Utilises-tu un Thread avec SwingWorker?

Discussions similaires

  1. Identification des JLabel dans l'event MouseClicked
    Par replicator dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 18/10/2011, 17h52
  2. [Look and feel] Texte des JLabels en gras
    Par aliasjcdenton dans le forum AWT/Swing
    Réponses: 11
    Dernier message: 26/01/2006, 11h49
  3. [JLabel] Redimensionnement auto non désiré
    Par SamRay1024 dans le forum Agents de placement/Fenêtres
    Réponses: 11
    Dernier message: 21/05/2004, 18h13
  4. [JLabel][HTML]pourquoi mes images s'affiche pas?!
    Par La Truffe dans le forum Composants
    Réponses: 8
    Dernier message: 29/04/2004, 11h23
  5. Accès à une case d'un DBGrid dans l'event OnKeyDown
    Par fba dans le forum Bases de données
    Réponses: 2
    Dernier message: 02/03/2004, 12h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo