2009-11-05 5 views
0

Comment lier une touche de fonction disons (F11 etc) à un JInternalFrame, afin qu'il puisse activer une action particulière.JInternalFrame et Keybinding

J'ai essayé avec les éléments suivants

this.getInputMap().put(KeyStroke.getKeyStroke("F11"), new AbstractAction() { 
     public void actionPerformed(ActionEvent e) { 
       System.out.println("Called"); 
      } 
     }); 

mais il ne sera jamais appelé? Ou suggérez comment activer un bouton dans un JInternalFrame en utilisant la touche de fonction.

Merci Azlam

Répondre

1

Eh bien, l'accent est jamais sur le cadre interne elle-même, se concentre sur un élément sur le cadre interne.

Donc, vous devriez probablement ajouterez la liaison à l'aide

internalFrame.getRootPane() ....

Vous devrez peut-être utiliser

"WHEN_ANCESTOR_OF_FOCUSED_COMPONENT" 
carte d'entrée

.

L'entrée de blog sur Key Bindings explique cela plus en détail.

Questions connexes