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 :

pb evenement de souris


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Janvier 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 8
    Par défaut pb evenement de souris
    j'ai ecrit un programme en
    java pour realiser ceci quand la souris
    passe au dessus de bouton change la
    couleur mais le pb que le boutton ne
    revien pas a sa couleur initial quand la
    souris ne passe pas au dessus
    corriger moi ce 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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
     import java.awt.*; 
    import java.awt.event.*; 
    import javax.swing.*; 
     
    public class hy 
    {public static void main(String[] args) 
    { 
    JFrame frame = new ButtonFrame(); 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    frame.show(); 
    } 
    } 
    class ButtonFrame extends JFrame 
    { public ButtonFrame() 
    { setTitle("ButtonTest"); 
    setSize(300, 200); 
     
    JFrame frame = new JFrame("exemple"); 
    final JButton button = new JButton("clic1 "); 
    final JButton button1 = new JButton("clic2 "); 
     
     
    JPanel p = new JPanel(); 
    p.add(button); 
     
    button.addMouseMotionListener(new MouseMotionAdapter() 
    { 
    public void mouseMoved(MouseEvent e) 
    { 
    int x=e.getX(); 
    int y=e.getY(); 
     
    if (button.contains(x,y) ){button.setBackground(Color.blue);} 
     
    else {button.setBackground(Color.red);} 
    repaint() ; 
     
    } 
     
    } ); 
    addWindowListener(new WindowAdapter() 
    { public void windowClosing(WindowEvent e) 
    { System.exit(0); 
    } 
    } ); 
     
     
    Container contentPane = getContentPane(); 
    contentPane.add(p); 
    } 
    }

  2. #2
    Membre expérimenté
    Inscrit en
    Septembre 2003
    Messages
    174
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 174

  3. #3
    Membre chevronné Avatar de Scorpyosis
    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2004
    Messages : 365
    Par défaut
    Alors plusieurs choses :

    1- la politesse parce que "corriger moi ce programme" tu oublies. On est pas des esclaves et tu n'obtiendras rien comme ça !
    2- La balise code, elle existe pour être utilisée ! alors un petit effort et on y gagnera tous
    3- Voici ton code corrigé, parce que je suis quelqu'un de trés trés gentil et même si j'ai vu desuite ton erreur j'ai bien failli pas t'aider, vu la façon trés chaleureuse dont ça a été demandé.

    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
    57
    58
     
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
     
    public class Hy
    {
    	public static void main(String[] args)
    	{
    		JFrame frame = new ButtonFrame();
    		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		frame.setVisible(true);
    	}
    }
     
    class ButtonFrame extends JFrame implements MouseMotionListener
    {
    	private final JButton button; 
    	private JPanel p;
     
    	public void mouseMoved(MouseEvent e)
    	{
    		int x=e.getX();
    		int y=e.getY();
     
    		if (button.contains(x,y) ){button.setBackground(Color.blue);}
    		else {button.setBackground(Color.red);}
    		repaint() ;
     
    	}
    	public void mouseDragged(MouseEvent e)
    	{}
     
     
    	public ButtonFrame()
    	{ 
    	setTitle("ButtonTest");
    	setSize(300, 200);
     
    	button = new JButton("clic1 ");	
     
    	p = new JPanel();
    	p.add(button);
    	p.addMouseMotionListener(this);
     
    	button.addMouseMotionListener(this);
     
    	addWindowListener(new WindowAdapter()
    			{ public void windowClosing(WindowEvent e)
    			{ System.exit(0);
    			}
    			} );
     
     
    	Container contentPane = getContentPane();
    	contentPane.add(p);
    	}
    }
    Le nom d'une classe c'est en Majuscule !
    Evite si possible les redefinition des mouseMoved ... à la volée, je trouve ça horrible (mais bon là c'est un avis perso)
    Ton erreur : ton bouton gère l'evenement mais que la souris n'est plus sur le bouton qui est ce qui le gère ???? il fallait rajouter au panel le addMotion...
    Les methodes deprecated tu peux aussi oublier, entre show() et setVisible(true) tu tapes 10 caracteres en plus et il y a pas de warning a la compilation !

    j'ose espérer que tu prendras en compte les remarques faites, sinon oublie ce forum !

  4. #4
    Membre éprouvé
    Inscrit en
    Mai 2005
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 130
    Par défaut
    Scorpyosis tu es vraiment une ame charitable

  5. #5
    Gfx
    Gfx est déconnecté
    Expert confirmé
    Avatar de Gfx
    Inscrit en
    Mai 2005
    Messages
    1 770
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 770
    Par défaut
    Utilise les evenements mouseEntered() et mouseExited() au lieu de mouseMoved().

Discussions similaires

  1. evenement de souris sur DropDownListe
    Par kroukse dans le forum ASP.NET
    Réponses: 2
    Dernier message: 06/12/2007, 13h58
  2. Enregistrement des evenements CLAVIER/SOURIS
    Par sam.fet dans le forum Linux
    Réponses: 3
    Dernier message: 17/08/2006, 12h23
  3. [wxWidgets] Evenement sur souris
    Par Eldered dans le forum wxWidgets
    Réponses: 2
    Dernier message: 06/06/2006, 23h23
  4. [C#] evenement clic souris
    Par vince3320 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 05/04/2006, 10h07
  5. Capter un evenement de souris pour toute l'appli
    Par tmorel dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 02/12/2004, 00h12

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