0
我遇到了KeyListener问题。我将KeyListener添加到我创建的JPanel中,但KeyListener不起作用。KeyListener不工作?
我的主类代码
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);
}
}
我对KeyboardEvents类代码为
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;
}
}
我KeyboardEvents类一直为我工作。我无法弄清楚为什么现在不行。
啊,哈哈哈,我是个白痴。谢谢。 – iAndr0idOs
@iAndr:是一个善良的白痴,并接受并赞扬Atreys的回答。 :) –
我打算去。我不得不等待10分钟,而我只是吃了晚饭。 ;) – iAndr0idOs