Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[spain-ec] Capturar Ctrl+X en un Text

Hola a todos,

Queremos permitir una cierta secuencia de teclas en un Text dentro de un editor pero no sabemos exactamente como hacerlo. Actualmente tenemos el siguiente código:

// Variables miembro de la clase..
      private Text _text;

// Inner class
private class MyKeyListener implements KeyListener
{
      public void keyPressed(KeyEvent e)
      {
            keyReleaseOccured(e);
      }

      public void keyReleased(KeyEvent e)
      {
            keyPressedOccured(e);
      }
}

private void addListeners()
{
      // Eventos que ocurren en el control de texto
      _text.addKeyListener(_myKeyListener);
      ...
}

protected void keyReleaseOccured(KeyEvent e)
{
      boolean isValid = false;
      char ch = e.character;
      boolean vl = (e.stateMask & SWT.CTRL) != 0;

      // Permitimos Ctrl+V o Ctrl+X (para que se actualice el campo)
      if( (e.stateMask & SWT.CTRL) != 0 &&
(String.valueOf(ch).toLowerCase().equals("v") ||  //$NON-NLS-1$
             String.valueOf(ch).toLowerCase().equals("x"))) //$NON-NLS-1$
      {
            System.out.println("Ctrl+V o Ctrl+X");
            isValid = true;
      }

      ...
}

El problema es que KeyListener está asociado a la pulsación o liberación de una única tecla. A mi siempre me está llegando la pulsación de Ctrl, pero nunca  me llega la pulsación adicional de X o V.

He estado buscando por internet y en el API de SWT pero no encuentro nada que me valga... ¿ Se me ha pasado algo del API por alto ? ¿ existe alguna forma fácil de capturar secuencias de teclas asociadas a un Text ?

Muchas gracias

Saludos / Best regards / Mit freundlichen Grüssen
                                       
                
 Joan Rodriguez Rodriguez             
 Analista programador / Laboratorio   
 Banksphere                           
 Tlf.: + 34 915 405 690 - Ext. 5690   
 jrodriez@xxxxxxxx                    
 www.isban.es                         
                       

Back to the top