ActionListener qui tue le keyListener

Signaler
Messages postés
152
Date d'inscription
mardi 4 mai 2004
Statut
Membre
Dernière intervention
8 octobre 2008
-
Messages postés
152
Date d'inscription
mardi 4 mai 2004
Statut
Membre
Dernière intervention
8 octobre 2008
-
Bonjour,

j'ai un borderlayout qui contien plusieur JPanel

l'un des panel fait appel à des gestionnaires d'evennement souris et clavier tels que :

this.addKeyListener(kl);
this.addMouseListener(ml);
this.addMouseMotionListener(mml);

Un autre Jpanel contient des JButton qui font appel à des Actions listener tels que:

Button1.addActionListener(al);

Tout se passe bien jusqu'à ce que j'appuie sur un boutton du second JPanel
Apres le KeyListener du premier JPanel ne répond plus (la souris n'a pas de probleme)

Avez vous une idée ?
J'ai essayé de mettre le meme keyListener sur le second jPanel sans succes
Merci

2 réponses

Messages postés
358
Date d'inscription
jeudi 24 octobre 2002
Statut
Membre
Dernière intervention
13 avril 2020

il nous faudrait le code des objets k1 et a1. par quel changement se traduit les eévènements.
Messages postés
152
Date d'inscription
mardi 4 mai 2004
Statut
Membre
Dernière intervention
8 octobre 2008
1
Ca ne change pas grand chose juste des variables....

/// AL :

class Action_PBE implements ActionListener{
public void actionPerformed(ActionEvent e){
Object source=e.getSource();
if (source==B_RefX){
System.out.println("Select Xref ");
M_Mode="SXRef";
}else if (source==B_RefY){
System.out.println("Select Yref ");
M_Mode="SYRef";
}else if (source==B_Loc){
System.out.println("Select Yref ");
M_Mode="Sxy";
}else{
System.out.println("Source Action non reconnue: " +source);
}
}
}

// LK:
class Key_PBE extends KeyAdapter{
public void keyPressed(KeyEvent e){
int code = e.getKeyCode();
System.out.println("Key "+ code +" Pressed");
if (code==37){
// Gauche
NPE.NP.x=NPE.NP.x-500;
}
if (code==38){
// Haut
NPE.NP.y=NPE.NP.y-500;
}
if (code==39){
// Droite
NPE.NP.x=NPE.NP.x+500;
}
if (code==40){
// Bas
NPE.NP.y=NPE.NP.y+500;
}
if (code==155){
// Insert
VJ[JSelected].add_VNavP(NPE.NP);
NPSelected=VJ[JSelected].NP.length-1;
VJ[JSelected].NP[NPSelected].Refresh(ball,VJ,"N",JSelected,NPSelected);
}
if (code==127){
// supprime
VJ[JSelected].del_VNavP(NPSelected);
NPSelected=Math.min(NPSelected,VJ[JSelected].NP.length-1);
}
NPE.NP.Refresh_relatif(ball,VJ,SSide,JSelected,NPSelected);
NPE.Update(VJ[JSelected].NP[NPSelected]);
}
public void keyReleased(KeyEvent e){
int code = e.getKeyCode();
System.out.println("Key "+ code +" Released");
}
public void keyTyped(KeyEvent e){
System.out.println("keyTyped "+ e );
super.keyTyped(e);
}
}