我正在尝试做一件非常简单的事情:当用户按下键盘键时触发一个动作
我想要映射的键是:
CTRL + V
public class keytestmain扩展Applet {
//Called when this applet is loaded into the browser.
public void init() {
//Execute a job on the event-dispatching thread; creating this applet's GUI.
try {
SwingUtilities.invokeAndWait(new Runnable() {
public void run() {
JLabel lbl = new JLabel("Hello World");
add(lbl);
JPanel p = new JPanel();
p.setBackground(Color.green);
p.setMinimumSize(new Dimension(100,100));
p.setPreferredSize(new Dimension(100,100));
p.setMaximumSize(new Dimension(100,100));
InputMap inputMap = new InputMap();
// Add a KeyStroke
inputMap.put(KeyStroke.getKeyStroke("SPACE"), "actionName");
inputMap.setParent(p.getInputMap(JComponent.WHEN_FOCUSED));
p.setInputMap(JComponent.WHEN_FOCUSED, inputMap);
add(p);
}
});
} catch (Exception e) {
System.err.println("createGUI didn't complete successfully");
}
}
}
但没有任何作用
有什么想法吗?
答案 0 :(得分:3)
我会使用Key Bindings而不是KeyListeners。这更可靠,因为它没有很多焦点问题。此外,KeyListeners是一个相对较旧的AWT解决方案,因此根据您的JDE,该命令可能已被删除。