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

Langage Java Discussion :

problème avec un keyPressed


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 4
    Par défaut problème avec un keyPressed
    bonjour, je travaille actuellement en java, et j'aimerai déplacer une image grace à un keylistener, le problème c'est que rien ne se passe quand j'appuie sur les touches; je vous joint mon 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
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
     
    public class fenetre extends JFrame
    { private JPanel panneau=new JPanel();
    private Image img=null;
    private MediaTracker mt=null;
    private int largeurs,hauteurs;
     
    public fenetre(String nom,int positionX,int positionY,int hauteur,int largeur)
    	{super(nom);
    	setBounds(positionX,positionY,hauteur,largeur);
    	setDefaultCloseOperation(EXIT_ON_CLOSE);
    	img=Toolkit.getDefaultToolkit().getImage("ballon.gif");
    	mt=new MediaTracker(this);
    	mt.addImage(img,0);
    	/*try{waitFORID(0);}
    	catch(InterruptedException e)
         		{System.out.println("Vous avez coupé le cable réseau");}*/
            setContentPane(panneau);
    	setVisible(true);
     
            }
    public void paint(Graphics g)
    	{Graphics2D g2d=(Graphics2D)g;
             g2d.drawImage(img,largeurs,hauteurs,this);
    	}
     
    public void keyPressed(KeyEvent evt){ 
     
          if (evt.getKeyCode() ==  KeyEvent.VK_LEFT)  
     
     { 
     
       largeurs = largeurs - 10; 
     
     } 
     
          else if (evt.getKeyCode() == KeyEvent.VK_RIGHT)   
     
     { 
     
       largeurs = largeurs + 10; 
     
     } 
     
          else if (evt.getKeyCode() == KeyEvent.VK_UP) hauteurs = hauteurs - 10; 
     
          else if (evt.getKeyCode() == KeyEvent.VK_DOWN) hauteurs = hauteurs + 10; 
     
          repaint(); 
     
      } 
     
     
     
      public void keyTyped(KeyEvent evt) {} 
     
      public void keyReleased(KeyEvent evt) {} 
     
     
     
     
    /*public void init(){
      
     	
         img.addKeyListener(new KeyListener()
    		{ 
    		public void keyReleased(keyEvent evt){}
    		public void keyTyped(keyEvent evt) {}          
    		public void keyPressed(KeyEvent evt){
                    if(evt.getKeyCode()==evt.VK_RIGHT && X+tailleX<=getSize().largeur){X++; } 
                    if(evt.getKeyCode()==evt.VK_LEFT && X>=0){X--; }
                    if(evt.getKeyCode()==evt.VK_DOWN && Y<=getSize().hauteur){Y++;} 
                    if(evt.getKeyCode()==evt.VK_UP && Y>=0){Y--; } 
                                                   }
                                         });
                       }*/
    }

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Je ne vois pas ton KeyListener ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre Expert
    Avatar de visiwi
    Profil pro
    Inscrit en
    Février 2008
    Messages
    1 050
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 1 050
    Par défaut
    Salut,

    il est nécessaire que ta classe implémente l'interface KeyListener. Ensuite il faut associer le listener au composant en utilisant la méthode addKeyListener(KeyListener).

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 4
    Par défaut
    je n'ai pas très bien compris ce que tu as voulu me dire là

  5. #5
    Membre Expert
    Avatar de visiwi
    Profil pro
    Inscrit en
    Février 2008
    Messages
    1 050
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 1 050
    Par défaut
    Il est nécessaire que ta classe fenetre implemente KeyListener, car tu as seulement écrite les méthode de cette interface sans l'implémenter (mot-clef: implements).
    Ensuite du doit associer ce listener (ta fenetre) avec le composant (probablement aussi la fenetre) de façon qu'il puisse notifier les évènements au listener lorsqu'ils se produisent. Pour cela utilise la méthode addKeyListener.

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 4
    Par défaut Pb avec un keyPressed
    voici mon nouveau 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
    52
    53
    54
    55
    56
    57
    58
    59
    60
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
     
    public class fenetre extends JFrame implements KeyListener
    { private JPanel panneau=new JPanel();
    private Image img=null;
    private MediaTracker mt=null;
    private int largeurs,hauteurs;
     
    public fenetre(String nom,int positionX,int positionY,int hauteur,int largeur)
    	{super(nom);
    	setBounds(positionX,positionY,hauteur,largeur);
    	setDefaultCloseOperation(EXIT_ON_CLOSE);
    	img=Toolkit.getDefaultToolkit().getImage("ballon.gif");
    	mt=new MediaTracker(this);
    	mt.addImage(img,0);
    	/*try{waitFORID(0);}
    	catch(InterruptedException e)
         		{System.out.println("Vous avez coupé le cable réseau");}*/
            setContentPane(panneau);
    	setVisible(true);
            img.addKeyListener(this);  
            }
    public void paint(Graphics g)
    	{Graphics2D g2d=(Graphics2D)g;
             g2d.drawImage(img,largeurs,hauteurs,this);
    	}
     
    public void keyPressed(KeyEvent evt){ 
     
          if (evt.getKeyCode() ==  KeyEvent.VK_LEFT)  
     
     { 
     
       largeurs = largeurs - 10; 
     
     } 
     
          else if (evt.getKeyCode() == KeyEvent.VK_RIGHT)   
     
     { 
     
       largeurs = largeurs + 10; 
     
     } 
     
          else if (evt.getKeyCode() == KeyEvent.VK_UP) hauteurs = hauteurs - 10; 
     
          else if (evt.getKeyCode() == KeyEvent.VK_DOWN) hauteurs = hauteurs + 10; 
     
          repaint(); 
     
      } 
     
     
     
      public void keyTyped(KeyEvent evt) {} 
     
      public void keyReleased(KeyEvent evt) {}
    mais le compilateur me retourne comme erreur :la methode addkeyListener ne prend pas en charge les objets de type image

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème avec KeyPress pour un textbox
    Par Patmat44 dans le forum C#
    Réponses: 2
    Dernier message: 05/04/2012, 17h58
  2. Ogre/OIS Problème avec keyPressed
    Par tet2brick dans le forum Ogre
    Réponses: 5
    Dernier message: 26/10/2009, 14h23
  3. Problème avec le keyPress
    Par stouf() dans le forum 2D
    Réponses: 4
    Dernier message: 12/03/2009, 11h00
  4. Problèmes avec keypressed
    Par Baptiste Wicht dans le forum Composants
    Réponses: 9
    Dernier message: 28/11/2005, 20h09
  5. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10

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