Gestion de lévenement clavier

Gestion de lévenement clavier - Java - Programmation

Marsh Posté le 21-05-2005 à 16:06:37    

Bonjour je veu réaliser un programme tout simple réalisant l'affichage d'un cercle sous java. Celui ci doit se mouvoir dans la fenetre lors d'une pression  sur les touche z,q,s ou d... Probleme : apres m etre documenter etc voici mon source :
MAIS LE CERCLE NE BOUGE PO !!!!
 
POurriez vous m aider ?
Le probleme se trouve probablement dans la classe Jeu.
 
SOURCE FENETRE.java :
 
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JComponent;
import javax.swing.JFrame;
import java.awt.*;
import javax.swing.*;
 
public class Fenetre {
 
 public static void showOnFrame(JComponent component, String frameName)  
 {
  JFrame frame = new JFrame(frameName);
   
  WindowAdapter wa = new WindowAdapter()  
  {
   public void windowClosing(WindowEvent e)  
   {
    System.exit(0);
   }
  };
 
   
  frame.addWindowListener(wa);
  frame.getContentPane().add(component);
  frame.pack();
  frame.setVisible(true);
 }
}
 
Source Jeu.java
 
import java.awt.*;
import javax.swing.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JComponent;
import javax.swing.JFrame;
 
public class Jeu extends JPanel
{
 private static int posx=50;
 private static int posy=50;
 
 public static void setposx(int x)
 {
  posx=x;
 }
 
 public static void setposy(int y)
 {
  posy=y;
 }
 
 public static  int getx()
 {
  return(posx);
 }
 
 public static int gety()
 {
  return(posy);
 }
 
 public void init()
 {
   
 }
 
 public void paint(Graphics g)
 {
  g.drawOval(posx, posy, 50, 50);
  g.drawString("posx",70,70);
  g.drawString("posy",70,70);
 }
 
  public boolean KeyDown(Event evt, int key)
  {
    char touche;
    touche = (char)key;
    switch(touche)
    {
     case 'z': posx++;repaint();break;
     case 's': posx++;repaint();break;
     case 'q': posx++;repaint();break;
     case 'd': posx++;repaint();break;
     case 'o': posx++;repaint();break;
    }
     
    return (true);
  }
 
 public void update(Graphics g)
 {
  paint(g);
 }
}
 
Source Affichage.java
 
import java.awt.*;
import javax.swing.*;
 
public class Affichage extends JPanel
{
 public static void main(String[] args)
 {
  Jeu f = new Jeu();
  f.setBackground(Color.white);
  f.setPreferredSize(new Dimension(100,100));
  Fenetre.showOnFrame(f,"Jeu java par JaI" );
 }
}

Reply

Marsh Posté le 21-05-2005 à 16:06:37   

Reply

Marsh Posté le 22-05-2005 à 20:09:35    

Voyant le nombre de reponses s'incrémenter chaque seconde, j aimerait savoir si ma question est conne ou si vous n avez tout simplement pas envie de repondre. Merci d'avance

Reply

Marsh Posté le 22-05-2005 à 22:53:06    

regarde du côté des KeyListener, parce que ta méthode KeyDown m'a l'aire louche.
 
En gros tu dois mettre :
public class Jeu extends JPanel implements KeyListener
 
et définir les methodes de cette interface (cf la doc de sun)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed