Aide en java

Fermé
soul - 19 sept. 2010 à 05:46
 Utilisateur anonyme - 19 sept. 2010 à 13:37
Bonjour,
je suis en train de programmer un jeu de course en java malheureusement j ai eu un pblm d'erreur sur la redefinition d'une methode public void KeyTyped(KeyEvent event) de l'interface KeyListener.En effet j'ai implemente la meme methode sur les 2 classes et l'erreur stipule que la methode a ete deja definie sur la classe.
voici la 1ere la classe et la dite methode :
private class Mouvement2 extends Thread implements KeyListener{
public void run(){
addKeyListener(this);


public void keyPressed(KeyEvent e) {
throw new UnsupportedOperationException("Not supported yet.");
}

public void keyReleased(KeyEvent e) {
throw new UnsupportedOperationException("Not supported yet.");
}
}
//necessaire pour KeyListener
public void KeyTyped(KeyEvent event){


if(event.getKeyChar()=='j'){
directionJ2=GAUCHE;
}
if(event.getKeyChar()=='k'){
directionJ2=BAS;
}
if(event.getKeyChar()=='l'){
directionJ1=DROITE;
}
if(event.getKeyChar()=='i'){
directionJ1=HAUT;
}

}
}
et voici la 2 classe avec la meme methode
private class Mouvement1 extends Thread implements KeyListener {

//necessaire pour KeyListener
public void KeyTyped(KeyEvent event){
if(event.getKeyChar()=='q'){
directionJ1=GAUCHE;
}
if(event.getKeyChar()=='s'){
directionJ1=BAS;
}
if(event.getKeyChar()=='d'){
directionJ1=DROITE;
}
if(event.getKeyChar()=='z'){
directionJ1=HAUT;
}

}
donc j ai une erreur qui dit que la classe keyTyped est deja definie ainsi donc je voulais savoir est ce qu'on on peut implementer une meme interface ds 2 classes diferentes ? cest le cas de mon porgramme s'il ya quelqu'un qui peut m'aider la dessus cest sera super.Merci d'avance


A voir également:

1 réponse

Utilisateur anonyme
19 sept. 2010 à 13:37
Salut,
À essayer:
Modifier la méthode KeyTyped et la nommer keyTyped (convention de nommage...)
Nous supposons que c'est une méthode de la classe Mouvement2.
Je suppose aussi que GAUCHE, BAS, DROITE et HAUT sont des constantes (final)

//necessaire pour KeyListener 
public void keyTyped(KeyEvent event, char gauche, char bas, char droite, char haut){ 
if(event.getKeyChar()==gauche){ 
direction=GAUCHE; 
} 
if(event.getKeyChar()==bas){ 
direction=BAS; 
} 
if(event.getKeyChar()==droite){ 
direction=DROITE; 
} 
if(event.getKeyChar()==haut){ 
direction=HAUT; 
} 

}


Si la méthode est appelée depuis la classe Mouvement2:
char gauche, char bas, char droite, char haut sont respectivement j, k, l, i
et q, s, d, z si appel depuis la classe Mouvement1

Comment faire appel à la méthode depuis Mouvement2:
Mouvement2 mvt2 = new Mouvement2();
         mvt2.keyTyped(KeyEvent event, 'j', 'k', 'l', 'i');
//Et on récupère:
directionJ2 = direction;


Ici j'ai une question;
Je vien juste de m'en rendre compte:
Pourquoi directionJ2 pour GAUCHE et BAS?
et DirectionJ1 pour DROITE et HAUT?
Si ce n'est pas une erreur, il faudra modifier si c'est possible car dans ce cas on a 2 méthodes différentes...

Comment faire appel à la méthode depuis Mouvement1:
Mouvement1 mvt1 = new Mouvement1();
         mvt1.keyTyped(KeyEvent event, 'q', 's', 'd', 'z');
directionJ1 = direction;


Il ne m'a pas été possible de tester, mais tu peux essayer...

Cordialement,

Dan
0