我正在尝试使用简单的KeyBindings程序。我按照java doc的说明,尝试测试在这个(Java Key Bindings Not Working)线程中回答的东西,但我不能让它工作。我想在按下“F1”时将“test”输出到控制台。谁能发现我的错误?
JFrame frame = new JFrame("shit");
frame.setSize(800, 600);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
JPanel jPanel = new JPanel();
jPanel.getInputMap().put(KeyStroke.getKeyStroke("F1"), "focus");
jPanel.getActionMap().put("focus", new AbstractAction() {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("test");
}
});
frame.add(jPanel);
答案 0 :(得分:-2)
在框架可见之前,应将组件添加到框架中。
如果不起作用,请使用其他InputMap。阅读How Key Bindings Work上Swing教程中的部分,了解如何使用3种不同的InputMaps。