Boa tarde, logo resolvi um problema estou com dúvida em outra coisa, pesquisei bastante e a maioria fala de JPaneTextField e outras coisas de interface grafica, porém não estou mexendo com interface gráfica ainda e não entendi os posts sobre a minha dúvida.
Eu preciso que, se for digitado qualquer coisa que não seja um número aconteça apareça uma mensagem informando que só aceita números.
Meu código esta assim
public static void main(String[] args)
{
int x = 0;
//Menu Principal
System.out.println("Selecione o tipo de colaborador para calculo de pagamento:");
System.out.println("Digite 1 para Celetista");
System.out.println("Digite 2 para Pessoa Juridica");
System.out.println("Digite 0 para Sair");
do {
try{
x = Keyboard.readInt();
}catch(InputMismatchException erro1)
{System.err.println("Não é permitido inserir letras, informe uma opção válida!"+erro1);}
if(x == 1){
ação 1...
}
else if(x == 2){
ação 2...
}
else if(x == 0){
System.exit(0);
}
else if(x != 0 && x != 1 && x != 2){
System.out.println("Escolha uma opção válida");
System.out.println("Selecione o tipo de colaborador para calculo de pagamento:");
System.out.println("Digite 1 para Celetista");
System.out.println("Digite 2 para Pessoa Juridica");
System.out.println("Digite 0 para Sair");
}
}while(true);
}
}
Os números aceitos são apenas 1, 2 e 0, isso ja esta funcionando. Eu adicionei aquele ImputMismatchException, pensando teoricamente que ele iria pegar letras e não iria printar na tela a mensagem que coloquei... Porém quando uma letra é digitada, o programa para, sem mensagem nenhuma de erro ou exceção.
Qual seria o caminho para meu if desse menu que criei só aceitar números?
