Pregunta

Estoy tratando de habilitar un JButton al pulsar la tecla "Ctrl + A" en un JTable para seleccionar todas las filas, así que ejecuta este código:

myTable.addKeyListener( new KeyListener() {         
    @Override
    public void keyReleased(KeyEvent e) {
        if( e.getKeyCode() == KeyEvent.VK_A && ( e.getModifiers() & InputEvent.CTRL_MASK ) != 0 ) {  // User clicked (CTRL + A) in table.
            if( myTable.getRowCount() > 1 )
                myButton.setEnabled( true );
        }
    }               
});

El problema es que muchas veces esto no funciona ... Cada vez que todas las filas de la tabla se seleccionan bien, pero el botón no está activado! Tengo que hacer clic en la tecla "Ctrl + A" 3 o 4 veces para que esto funcione. ¿Hay algo en que yo debería saber, o una mejor idea para que esto funcione?

¿Fue útil?

Solución

Trate overridding keyPressed en lugar de keyReleased.

Otros consejos

o una mejor idea para que esto funcione?

Usted debe estar utilizando Key Bindings , no un KeyListener .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top