2017-05-15 5 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がどのように使われているかを見てください。

関連する問題