2017-05-15 7 views
0

J'essaie de faire fonctionner un simple programme KeyBindings. J'ai suivi les instructions de java doc, et essayé de tester les trucs répondus dans ce fil (Java Key Bindings Not Working), mais je ne peux tout simplement pas le faire fonctionner. Je veux sortir "test" sur la console quand "F1" est pressé. Quelqu'un peut-il repérer mon erreur?Essayer de faire fonctionner 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); 

Répondre

-2
  1. Les composants doivent être ajoutés au cadre avant que le cadre est visible.

  2. Si cela ne fonctionne pas, utilisez un InputMap différent. Lisez la section du tutoriel Swing au How Key Bindings Work pour voir comment les 3 InputMaps sont utilisés.