2017-05-15 3 views
0

간단한 KeyBindings 프로그램을 작동 시키려고합니다. 나는 java doc에서 지시를 따랐고,이 (Java Key Bindings Not Working) 스레드에서 응답 한 것들을 테스트하려했지만, 나는 그저 작동하지 않는다. "F1"을 누를 때 콘솔에 "test"를 출력하고 싶습니다. 누구든지 내 실수를 발견 할 수 있습니까? 상기 프레임이 표시되기 전에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을 사용하십시오. How Key Bindings Work에있는 Swing 튜토리얼의 섹션을 읽고 3 개의 다른 InputMap이 어떻게 사용되는지보십시오.

관련 문제