Gestion de lévenement clavier - Java - Programmation
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
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)
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" );
}
}