Ola amigos,
Sou novo aqui, e conheço muito pouco sobre java, peguei um projeto andando, que utiliza um terminal de coletor de dados que roda o codigo java e estou dando continuidade ao desenvolvimento.
A interface que é mostrada para o usuario é totalmente modo texto, ou seja, nao existe interface grafica, como janelas, botoes, etc. Sao exibidos menus em que aparecem a opcoes enumeradas por uma lista, e o usuario tem que usar o teclado para entrar com os dados e enviar a resposta para ação a ser tomada.
O meu problema é o seguinte:
Quando o usuario digita uma opcao, por exemplo, tem que teclar <1> e depois <ENTER> para escolher a opcao: rastreio produto.
Queria saber como eu faço para que no momento em que eu digito a tecla <1> a opcao seja escolhida, sem a necessidade de teclar <ENTER>?
Atualmente estou usando o metodo readLine() da classe BufferedReader:
Um exemplo:
import java.io.*;
public class index {
public index() throws Exception {
}
public static void main(String args[]) throws Exception {
inicio();
}
public static void inicio() throws Exception {
//Variavéis para leitura de linha
InputStreamReader isr;
BufferedReader br;
isr = new InputStreamReader(System.in);
br = new BufferedReader(isr);
String resposta = "";
String mensagem = "";
mensagem = "Menu Principal \n" +
"[1]Rastreio de produto \n" +
"[2]Rastreio de estoque \n" +
"[3]Rastreio de endereco \n" +
"[4]Sair \n " +
"\n" +
"\n" +
"Opcao: ";
do {
System.out.print(mensagem);
resposta = br.readLine();
}
while ( (!resposta.toUpperCase().trim().equals("1"))
&&(!resposta.toUpperCase().trim().equals("2"))
&&(!resposta.toUpperCase().trim().equals("3"))
&&(!resposta.toUpperCase().trim().equals("4"))
);
System.out.println("Resposta:" +
resposta);
System.out.println("FIM");
}
}
PS.
O coletor de dados é esse :
LRT 3800da Symbol Technologies,
Series 3800Portable Terminal
Ele esta rodando em um Servidor Unix.
Dá pra simular o acesso via Telnet.
Se alguem puder ajudar fico muito grato.
Valeu!


