0
KeyListener에 문제가 있습니다. 내가 만든 JPanel에 KeyListener를 추가했지만 KeyListener가 작동하지 않습니다. 메인 클래스에 대한KeyListener가 작동하지 않습니까?
내 코드는 KeyboardEvents 클래스
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;
}
}
입니다. 왜 지금은 효과가 없을지 모르겠다.
아, 하하하, 나는 바보 야. 감사. – iAndr0idOs
@iAndr : 친절한 바보이고 Atreys의 대답을 수락하고 upvote합니다. :) –
나는 가고 있었다. 나는 10 분을 기다려야했다. 그리고 나는 단지 저녁 식사를 먹었다. ;) – iAndr0idOs