0
J'ai des problèmes avec un KeyListener. J'ajoute le KeyListener au JPanel que je crée, mais le KeyListener ne fonctionne pas.KeyListener ne fonctionne pas?
Mon code pour la classe principale est
package client;
import java.awt.Dimension;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class KeyTest {
public static KeyboardEvents keyEvents;
public static void main(String[] args) {
JFrame frame = new JFrame("KeyTest");
JPanel panel = new JPanel();
panel.setFocusable(true);
panel.requestFocus();
panel.addKeyListener(keyEvents);
frame.add(panel);
frame.setSize(new Dimension(640,480));
frame.setVisible(true);
}
}
Mon code pour la classe KeyboardEvents est
package client;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.util.HashMap;
import java.util.Map;
public class KeyboardEvents implements KeyListener {
Map<Integer, Integer> keyMap;
public KeyboardEvents() {
initiate();
}
public void initiate() {
keyMap = new HashMap<Integer, Integer>();
}
public void keyPressed(KeyEvent e) {
keyMap.put(new Integer(e.getKeyCode()), new Integer(keyMap.size()));
System.out.println(e.getKeyCode());
}
public void keyReleased(KeyEvent e) {
keyMap.remove(e.getKeyCode());
}
public void keyTyped(KeyEvent e) {
}
public boolean keyDown(int key) {
return keyMap.containsKey(key);
}
public Integer[] getKeys() {
Object[] keys;
keys = keyMap.keySet().toArray();
Integer[] c = new Integer[keys.length];
for(int i = 0; i < keys.length; i++)
{
c[i] = (Integer) keys[i];
}
return c;
}
}
Ma KeyboardEvents classe a toujours travaillé pour moi. Je n'arrive pas à comprendre pourquoi ça ne marchera pas maintenant.
ah, hahaha, je suis un idiot. Merci. – iAndr0idOs
@iAndr: sois un idiot et accepte et augmente la réponse d'Atreys. :) –
J'allais à. J'ai dû attendre 10 minutes, cependant, et j'ai juste mangé le dîner. ;) – iAndr0idOs