Bonjour,
Je souhaiterais utiliser des écouteurs claviers dans un programme, remplacer les ActionListener par des KeyListeners. Le problème est que j'ai essayé de récupérer avec la méthode getKeyCode(), sous la forme d'un int, et d'afficher sa valeur sur le JPanel grâce à un JButton.
Le problème est que même après des appuis claviers, la valeur de cette variable est toujours=0...
J'avais pensé à un problème de focus, mais je n'arrive pas à le résoudre...
Je travaille sous Eclipse, et le problème est le même sur windows et Ubuntu...
Pouvez-vous m'aider ?
Merci d'avance
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55 import javax.swing.*; import java.awt.*; import java.awt.event.*; public class testClavier { public static void main(String[]args) {convertisseur nc=new convertisseur();} } class convertisseur extends JFrame { public convertisseur() { super("Fenêtre"); setBounds(100,200,500,300); setDefaultCloseOperation(EXIT_ON_CLOSE); getContentPane().add(new panneauCadre()); setVisible(true); this.requestFocusInWindow(); } } class panneauCadre extends JPanel { private JLabel mess=new JLabel("Bienvenue"); private JButton bouton=new JButton("Valeur de int"); private int source; public panneauCadre() { mess.addKeyListener(new Ecouteur()); add(mess); add(bouton); bouton.addActionListener(new Ecout()); } class Ecouteur implements KeyListener { public void keyPressed(KeyEvent event) { source=event.getKeyCode(); } public void keyTyped(KeyEvent evt) { } public void keyReleased(KeyEvent evt) { } } class Ecout implements ActionListener{ public void actionPerformed(ActionEvent arg0) { mess.setText(String.valueOf(source)); } } }
Partager