2011-11-23 27 views
6

Tengo una aplicación con un panel con pestañas y diferentes componentes en ella. Me he puesto un Menultem como Acción con un acelerador:¿Hay un elemento Swing que tenga F6 como acelerador predeterminado?

private final Action focusDefaultCommandsAction = new AbstractAction() 
{ 
    { 
     putValue(NAME, "Fokusiere Kommandoliste"); 
     putValue(ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_F6, 0)); 
    } 

    @Override 
    public void actionPerformed(final ActionEvent e) 
    { 
     invokeShowCommandsList(); 
    } 
}; 

Sé que hay una pestaña donde el Accelearator de la tecla F6 no funciona. la tecla F7 funciona.

¿Hay quizás un acelerador predeterminado en un elemento Swing que tenga prioridad sobre mi acelerador?

Respuesta

9

Puede buscarlo en BasicLookAndFeel.java (o una clase similar según el L & F que utilice), busque en F6.

Parece que F6 es utilizado por JSplitPane para alternar el enfoque entre el contenido y los divisores. para quitarlo podría utilizar algo similar (no probado, creo que la eliminación de la acción real es más difícil, ya que podría estar en un mapa opinión de los padres):

splitPane.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT) 
    .put(KeyStroke.getKeyStroke(KeyEvent.VK_F6, 0), "none"); 
+1

milagro: funciona :) muchas gracias. – Neifen

+0

¿Alguien sabe un lugar donde encontrar todos los aceleradores utilizados por los componentes de Swing? Podría ser útil –

+0

Tenga en cuenta que JSplitPane también utiliza el acelerador F8. –

Cuestiones relacionadas