Estou com o seguinte problema. Tenho um JTextField no qual o usuário digita um valor e tenho que converte-lo para Double para poder gravar no banco. Minhas dúvidas são, qual tipo de Exception eu devo usar e, quando essa exceção for lançada, como voltar o foco para o JTextField.
Um exemplo de código do que estou tentando fazer:
try{
Doublevalor=Double.parseDouble(jtfValor.getText());
}catch(Exceptione){//Qualotipodeexceção?
JOptionPane.showMessageDialog(this,"O valor do pagamento esta escrito de forma incorreta."+"\n- Use pontos no lugar de vígulas."+"\n- Não deixe em branco."+"\n- Não use letras.");//AgoraofocodevevoltarparaoJTextField
}
Uma dica, você pode usar o jTextField.getText().replace(’,’,’.’) para não precisar obrigar o usuário a digitar o número flutuante com ponto(.)
Fazer uma variável auxiliar que receba o conteúdo do textfield e aplicar este replace e o replace de ’ ’ por ‘’ (retirar os espaços), e fazer depois um setText() contendo o novo texto no evento do botao
J
jhonatan1
Tente usar a NumberFormatException, ela irá lançar uma exceção se a string digitada não estiver de acordo com o tipo a ser convertido
higornucci
Maravilha.
Essa do .replace(char, char) eu não sabia. Muito obrigado pela dica.
Agora estou usando a exceção correta. NumberFormatException. Muito obrigado tambem
Contudo, ainda falta saber como voltar o foco a um determinado JTextField.
S
SergioFilho
higornucci:
Maravilha.
Essa do .replace(char, char) eu não sabia. Muito obrigado pela dica.
Agora estou usando a exceção correta. NumberFormatException. Muito obrigado tambem
Contudo, ainda falta saber como voltar o foco a um determinado JTextField.
No replace não precisa ser necessariamente (char, char).
Não sei se estou dizendo besteira pois também sou iniciante em java, mas acredito que é o método requestFocus();
jTextField1.requestFocus();
higornucci
Oooooo rapaz!
Era isso mesmo, eu estava procurando algo como jtfValor.setFocus(true) hahahaha
Brigadão a todos que contribuiram
resolvido!
ViniGodoy
O comando não é requestFocus(). É o requestFocusInWindow(). Pode ler, está escrito na própria documentação do requestFocus().
O requestFocus() não é multi-plataforma, e pode trazer o foco da janela de maneira inconveniente para o usuário.