2011-01-27 11 views
5

Estoy escribiendo un programa que toma comandos a través de la consola.Java Stream Keyboard Input

Sin embargo, no quiero presionar "enter" para enviar ese comando.

Quiero que el código monitoree constantemente lo que estoy ingresando, y ejecute el código cuando termine.

Los comandos vienen como texto de un programa de reconocimiento de voz, por lo tanto, eliminar la necesidad del trazo "enter" es muy importante.

¿Alguien tiene alguna idea?

+1

¿Cómo sabrá su programa cuando se complete la salida del reconocimiento de voz? –

+0

Eso era una preocupación, sin embargo, estoy razonablemente seguro de que puedo manejar eso con un análisis de comandos correcto. – David

Respuesta

1

Recientemente he llegado al conocimiento de los eventos en Java y creo que esto podría ayudarlo. Solo necesitaría asociar la impresión de reconocimiento de voz a la pantalla con un evento en Java y tendría un oyente para escuchar el evento y cuando vea el evento ejecutará el código deseado. Actualmente tengo un hilo abierto donde estoy tratando de obtener algunos buenos ejemplos de esto, quizás eso ayude.

Java Events Question

+0

Gracias por el enlace Señor, ¡lo verificaré! Sin embargo, pensé que Android hacía eventos y que no eran normales para Java. ¡Sin embargo, miraré! – David

+0

¡Esta fue la respuesta! ¡Gracias! – David

0

No he trabajado con Java desde la universidad, pero si usted está leyendo desde la línea de comandos, a continuación, que está utilizando System.in.read() o algo similar. Como estas son llamadas de método de bloqueo, su aplicación nunca será notificada acerca de la nueva entrada hasta que presione ENTER.

Si estoy totalmente equivocado, házmelo saber.

Probablemente sea mejor que use un simple (posiblemente incluso oculto) que puede tomar el texto del usuario y un detector de eventos en el elemento de la IU que lo lee en el procesador de texto de la aplicación.