Salut
j'ai besoin de récuperer les touches pressé au clavier pour déclenché des evenement dans mon prog
Pour cela j'ai séparé mon prog en 2 classe
une qui gere les evenements de
ActionListener et keyListener
et l'autre pour mon programme
Le probleme c'est que il detecte bien les evenement de ActionListener mais pas ce de keyListener
Et des que j'ajoute avec addKeyListener l'evenement, sa bloque aussi les evenement de ActionListener
Lorsque j'appuis sur les touches aucun des 3 message n'aparait (voir code + bas)
Lancement du prog :
public
Button origine;
private Evenements m_event;
publicvoid init(){
m_event = new Evenements(this);
origine = new Button("Origine");
add(origine);
origine.addActionListener(m_event);
addKeyListener(m_event);
repaint();
}
Ma classe evenements :
import
java.awt.event.*;
import javax.swing.*;public
class Evenements implements ActionListener, KeyListener { private Interface frm;
private rubik rubik3d;/**
*Constructeur
*/public Evenements(rubik modele) {
this.rubik3d = modele;
}publicvoid actionPerformed(ActionEvent evt) {Object source = evt.getSource();
if(source == rubik3d.origine){rubik3d.setOrigine();}
rubik3d.repaint();}
publicvoid keyPressed(KeyEvent evt) {System.
out.println("keyP");int keyCode = evt.getKeyCode();String key = evt.getKeyText(keyCode);
if((key == "u") || (key == "8")){rubik3d.turnFace(2);}
elseif((key == "d") || (key == "2")){rubik3d.turnFace(4);}
elseif((key == "f") || (key == "5")){rubik3d.turnFace(1);}
elseif((key == "r") || (key == "6")){rubik3d.turnFace(3);}
elseif((key == "l") || (key == "4")){rubik3d.turnFace(5);}
elseif((key == "b") || (key == "0")){rubik3d.turnFace(0);}
elseif(key == "+"){rubik3d.sens="H";}
elseif(key == "-"){rubik3d.sens="A";}
rubik3d.repaint();}
publicvoid keyReleased(KeyEvent evt) {System.
out.println("keyR");}
/***latoucheaétéenfoncéepuisrelachée[keyPressed()+keyReleased()]*/publicvoid keyTyped(KeyEvent evt) {System.
out.println("keyT");}
}