[英]KeyListener not working?
I'm having trouble with a KeyListener. 我遇到了KeyListener的问题。 I add the KeyListener to the JPanel that I create, but the KeyListener isn't working. 我将KeyListener添加到我创建的JPanel中,但KeyListener不起作用。
My code for the main class is 我的主类代码是
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);
}
}
My code for the KeyboardEvents class is 我的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;
}
}
My KeyboardEvents class has always worked for me. 我的KeyboardEvents类一直对我有用。 I can't figure out why it won't work now. 我无法弄清楚为什么它现在不起作用。
keyEvents
is null. keyEvents
为null。 before you add it: 在添加之前:
keyEvents= new KeyBoardEvents();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.