本文介绍了KeyListener无法正常工作?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在使用KeyListener时遇到了麻烦.我将KeyListener添加到我创建的JPanel中,但是KeyListener无法正常工作.
I'm having trouble with a KeyListener. I add the KeyListener to the JPanel that I create, but the KeyListener isn't working.
我主要的代码是
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类代码是
My code for the KeyboardEvents class is
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类一直为我工作.我不知道为什么现在不行.
My KeyboardEvents class has always worked for me. I can't figure out why it won't work now.
推荐答案keyEvents为空.在添加它之前:
keyEvents is null. before you add it:
keyEvents= new KeyBoardEvents();更多推荐
KeyListener无法正常工作?
发布评论