Programación del clic automático del ratón
Ingreso de diversa información clave: java.awt.event.KeyEvent
Indica un evento de pulsación de tecla en el componente.
Este evento de bajo nivel es generado por un objeto componente (como un campo de texto) cuando se presiona, suelta o escribe una tecla. Este evento se pasa a cada objeto KeyListener o KeyAdapter que se registra para recibir dichos eventos utilizando el método addKeyListener del componente. (Los objetos KeyAdapter implementan la interfaz KeyListener). Cuando ocurre un evento, todos esos objetos de escucha obtienen este KeyEvent.
Los eventos de pulsación de tecla son eventos de alto nivel que generalmente no dependen de la plataforma o la distribución del teclado. Estos eventos se generan cuando se ingresan caracteres Unicode y se consideran la mejor manera de ingresar caracteres. El caso más simple es el evento de tipo clave generado al presionar una sola tecla (como "a"). Pero los caracteres a menudo se generan mediante una serie de pulsaciones de teclas (como 'shift' + 'a'), y la relación de mapeo entre los eventos de pulsación de teclas y los eventos de pulsación de teclas puede ser de muchos a uno o de muchos a muchos. Por lo general, al soltar una tecla no es necesario generar un evento de pulsación de tecla, pero en algunos casos se genera un evento de pulsación de tecla solo cuando se suelta una tecla (como la introducción de secuencias ASCII mediante el método Alt-Numpad en Windows). No se generarán eventos clave que no generen caracteres Unicode (como teclas de acción, combinaciones de teclas, etc.).
El método getKeyChar siempre devuelve un carácter Unicode válido o CHAR_UNDEFINED. Los eventos KEY_TYPED informan la entrada de caracteres: los eventos KEY_PRESSED y KEY_RELEASED no están necesariamente asociados con la entrada de caracteres. Por lo tanto, se garantiza que el resultado del método getKeyChar será significativo solo para eventos KEY_TYPED.
Para eventos de pulsación y liberación de teclas, el método getKeyCode devuelve el código de tecla del evento. Para eventos de pulsación de tecla, el método getKeyCode siempre devuelve VK_UNDEFINED.
Los eventos de tecla presionada y liberada son eventos de bajo nivel y dependen de la plataforma y la distribución del teclado. Estos eventos se generan cada vez que se presiona o suelta una tecla y son la única forma de obtener claves que no generan entrada de caracteres (como teclas de acción, combinaciones de teclas, etc.). La tecla presionada o soltada se indica mediante el método getKeyCode, que devuelve un código de clave virtual.
Los códigos de teclas virtuales se utilizan para informar qué tecla del teclado se presionó, en lugar de los caracteres generados por una o más combinaciones de teclas (como "A" se genera con mayúsculas+"a").
Por ejemplo, presionar la tecla Shift genera un evento KEY_PRESSED con keyCode VK_SHIFT, mientras que presionar la tecla 'a' genera un evento KEY_PRESSED con keyCode VK_A. Después de soltar la tecla "a", se activa el evento KEY_RELEASED con keyCode VK_A. Además, se genera un evento KEY_TYPED con un valor keyChar de "A".
Nota:
Las combinaciones de teclas que no producen caracteres Unicode (como teclas de acción como F1 y AYUDA) no generarán el evento KEY_TYPED.
No todos los teclados y sistemas son capaces de generar todos los códigos clave virtuales. No se intenta generar artificialmente estas claves en Java.
Los códigos de teclas virtuales no identifican las teclas físicas: dependen de la plataforma y la distribución del teclado. Por ejemplo, una tecla que genera VK_Q cuando se usa la distribución del teclado estadounidense generará VK_A cuando se usa la distribución del teclado francés.
No todos los personajes tienen un código clave asociado. Por ejemplo, no hay ningún código clave para el signo de interrogación porque no hay ningún teclado que muestre el signo de interrogación en la capa principal.
Para admitir el manejo de claves de acción independiente de la plataforma, la plataforma Java utiliza una pequeña cantidad de constantes de clave virtual adicionales para ciertas funciones que de otro modo tendrían que identificarse mediante la interpretación de códigos y modificadores de clave virtual. Por ejemplo, para los teclados japoneses de Windows, se devuelve VK_ALL_CANDIDATES en lugar de VK_CONVERT más el modificador ALT.
Advertencia: No confíe en valores constantes de VK_ distintos de aquellas claves definidas por el lenguaje Java (VK_ENTER, VK_BACK_SPACE y VK_TAB). Sun se reserva el derecho de cambiar estos valores para adaptarse a una gama más amplia de teclados en el futuro según sea necesario.