cs_ptidav
Messages postés11Date d'inscriptiondimanche 6 avril 2003StatutMembreDernière intervention26 janvier 2009
-
14 nov. 2006 à 17:34
cs_ptidav
Messages postés11Date d'inscriptiondimanche 6 avril 2003StatutMembreDernière intervention26 janvier 2009
-
15 nov. 2006 à 19:06
Bonjour,
j 'ai un pb avec l utilisation du keylistener dans un JPanel, ce JPanel est contenu dans une JFrame
et il instancie d autres JPanel qui s ajoutent sur lui. J ai fait d autres sources ou je l utilise et d habitude ca marche mais la rien ne s affiche... (j ai peut etre aussi la tete dans le code depuis trop lgtps ...).
Si qq un voit le pb. Merci d avance.
public class Tapis extends JPanel implements KeyListener {
));
for (int i = 0; i < cont.getGrille().length; i++)
{
add(new Domino((Piece) cont.getGrille()[i], cont),
BorderLayout.CENTER);// Domino est un panel }
addKeyListener(this); }
//[...]
public void keyPressed(KeyEvent a) {
System.out.println("test");
}
public void keyReleased(KeyEvent arg0) {
System.out.println("test");
}
public void keyTyped(KeyEvent arg0) {
System.out.println("test");
}
}
pas de changement meme si le panel est totalement vide, donc au premier plan, j ai meme enlevé tout dans le constructeur (a part .addKeyListener(this); bien sur) et tjs rien, le pb viendrait il d ailleurs ? ... Je vais regarder les KeyboardAction de plus pres et vu que c est un travail noté, je prefere pas mettre le listener dans la classe Domino.
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_ptidav
Messages postés11Date d'inscriptiondimanche 6 avril 2003StatutMembreDernière intervention26 janvier 2009 15 nov. 2006 à 19:06
Bonsoir,
KeyboardAction marche très bien, c'est cool, voila comment je l'ai utilisé si ca peut interesser des gens par la suite, par exemple j'ai une classe où il y a un JButton newGame qui sert à lancer un nouveau jeu :
//dans le constructeur
//[...]
newGame.addActionListener(this);
newGame.registerKeyboardAction(this, KeyStroke.getKeyStroke(
KeyEvent.VK_H, Event.CTRL_MASK),
JComponent.WHEN_IN_FOCUSED_WINDOW);
//[...] Fin du constructeur
public void actionPerformed(ActionEvent arg0) {
if (arg0.getSource() == newGame ||
KeyStroke.getKeyStroke(KeyEvent.VK_H, Event.CTRL_MASK).isOnKeyRelease())
{
ig.getCont().restart(ig); //redemarrage du jeu
}
}
Le jeu redemarre si le bouton newGame est utilisé ou si la combinaison CTRL+H est pressée.
Merci pour l'aide.