2017-05-15 5 views
0

Ich versuche, ein einfaches KeyBindings-Programm zu bekommen. Ich folgte den Anweisungen von Java Doc und versuchte, die Sachen zu prüfen, die in diesem (Java Key Bindings Not Working) Thread beantwortet wurden, aber ich kann es einfach nicht zum Laufen bringen. Ich möchte "test" auf der Konsole ausgeben, wenn "F1" gedrückt wird. Kann jemand meinen Fehler erkennen?Ich versuche KeyBindings zu arbeiten

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

Antwort

-2
  1. Komponenten sollten mit dem Rahmen hinzugefügt werden, bevor der Rahmen sichtbar gemacht wird.

  2. Wenn das nicht funktioniert, verwenden Sie eine andere InputMap. Lesen Sie den Abschnitt des Swing-Lernprogramms unter How Key Bindings Work, um zu sehen, wie die drei verschiedenen InputMaps verwendet werden.

Verwandte Themen