Java problem KeyListener

Fermé
PerduSurSonProjet - 22 juin 2010 à 14:16
 Nixial - 22 juin 2010 à 15:01
Bonjour,

d'abord merci à tous.

voila j'ai un petit souci pour utiliser un keylistener.

J'ai cru comprendre que l'on ne peut pas l'utiliser dans les JPanel et qu'il faut le placer dans le JFrame jusqu'ici tout va bien.

Le problème c'est que mon programme utilise plusieurs JPanel différent et qu'un seul utilise le KeyListener du coup voici mon JFrame
(ps: je recopie plus ou moins je n'ai pas mon projet sur ce pc):





public class Fenetre extend JFrame
{
private Container cont;
private MyKeyListener mkl;
private int numPanneau=0;//cette variable change a chaque fois que
//je change de panneau grâce à un JMenuBar

public Fenetre
{
cont=this.getContentPane();


}

private MyKeyListener implements KeyListener
{
public void keyTyped(KeyEvent e)
{
if(numPanneau==3)//si le panneau est d'un type "MonPanneau"
((MonPanneau)cont).testTouche(e);//le bug est ici, le cast est interdit alors
//que MonPanneau hérite de JFrame
}


}
}

Ici je veux donc "juste" envoyer mon KeyEvent dans une méthode de ma classe, méthode non hérité de JFrame.

Question:

1) y a t'il une méthode herité de JFrame qui prend un KeyEvent en argument?
2) pourquoi mon cast est interdit et comment y remédier sans créer de variable MonPanneau dans mon Jframe?

désolé pour l'aspect brouillon de ma question le souci étant que je n'ai pas internet sur mon pc ce qui fais que je dois ressortir ça de tête.

Merci encore.


A voir également:

1 réponse

Bonjour,

Ca fait longtemps que je n'ai pas fait de Swing mais à mon sens, tu essaies de caster un objet de type Container en MonPanneau (qui hérite de JFrame).
Simplement l'objet Container et JFrame ne sont pas les mêmes objets.

Sauf erreur, Nixial.
0