Tenho um método construtor que recebe como parâmetro um nome(String) e um codigo_id (inteiro).
Ele recebe os dados de uma JOptionPane.
Se no codigo_id é digitado alguma letra dá um erro de exceção.
Preciso de alguma forma permitir que seja digitado apenas números, caso contrário deve ser exibida uma mensagem informando que o usuário precisa digitar apenas números.
O que devo fazer ?
Acredito que devo usar um Try-Catch. Mas aonde ? E como devo verificar se é inteiro ?
Para você ter mais controle sobre a forma como os dados são digitados, acho que vale a pena você criar seu próprio formulário para que o usuário digite os campos, em vez de confiar essa tarefa a JOptionPane. Segue uma sugestão sobre como fazer o campo de entrada numérico: http://stackoverflow.com/a/6111095
F
felipead
Pois é… se eu pudesse escolher usaria uma JTextField ou algum outro que fosse mais fácil de ser manipulado. Mas tenho que usar uma JOptionPane. Então preciso de uma solução para a JOptionPane.
ViniGodoy
E por que você tem que usar o JOptionPane? O que te impede de criar um JDialog?
argentinaluiz
Olá você pode utilizar um modelo chamado Document para validar o que está sendo digitado,
assim só será permitido digitar números ao inves de letras.
crie um JTextField e crie um Document e adicione-o no campo de texto.
É para um trabalho da facul… um dos requisitos é que seja usado JOptionPane.
argentinaluiz
Então felipe já que tem que ser com o JOptionPane mesmo,
coloca o JTextField dentro dele e usa o Document para permitir só a digitação de números.
F
felipeaps
Não consegui pensa em nada melhor no momento hehhee, mas…
booleanerrado=true;do{try{Stringnumero=JOptionPane.showInputDialog(null,"Entre com um numero","Entrada",JOptionPane.INFORMATION_MESSAGE);intnum=Integer.parseInt(numero);errado=false;}catch(NumberFormatExceptionex){System.out.println("Somente numeros");// Ou qualquer outro tipo de mensagem, quem sabe com JOptionPane mesmo....}}while(errado);
argentinaluiz
é uma outra solução! Boa!
F
felipead
Tentei desta última forma, mas o problema é que tenho um método construtor que recebe uma string, string(telefone) e outra string.
A mensagem dizendo que é apenas números aparece depois que tudo é digitado. O correto seria aparecer na hora que ele digita alguma letra no campo do telefone.
O que posso fazer ?
vitordaumling
com um jTextField voce poderia fazer o TRY-CATCH dentro de um evento do jTextFeld chamado keyReleased. Agora, utilizando jOptionPane eu desconheço uma forma de se validar no momento da digitação