2017-05-15 79 views
0

我想要一个简单的KeyBindings程序工作。我遵循从java文档的指示,并试图测试这个(Java Key Bindings Not Working)线程回答的东西,但我不能让它工作。当按下“F1”时,我想输出“测试”到控制台。任何人都能发现我的错误吗试图让KeyBindings工作

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); 

回答

-2
  1. 组件应该被添加到该帧之前的帧变得可见。

  2. 如果这样不起作用,请使用不同的InputMap。阅读Swing教程How Key Bindings Work中的部分,了解3种不同的InputMaps是如何使用的。