Pessoal…
Como faço para sempre que um valor inserido na InputDialog for incompatível com o tipo o script voltar novamente para a Input ???
Tipo assim:
int qtd = Integer.parseInt(JOptionPane.showInputDialog(null, "Informe a Quantidade do Produto :", "Quantidade :", 2));
se for digitado um valor inteiro seguir normalmente o script, senão, abri-la novamente…
isso no método main da classe…
[quote=Danleonhart]Pessoal…
Como faço para sempre que um valor inserido na InputDialog for incompatível com o tipo o script voltar novamente para a Input ???
Tipo assim:
int qtd = Integer.parseInt(JOptionPane.showInputDialog(null, "Informe a Quantidade do Produto :", "Quantidade :", 2));
se for digitado um valor inteiro seguir normalmente o script, senão, abri-la novamente…
isso no método main da classe…[/quote]
Uma idéia rapida.
boolean possoSair = false;
while (!possoSair) {
// aqui faz a movimentacao que vc quer fazer e passa true para a variavel
possoSair = true;
}
GodZilla_XF
Não entendi… :shock:
pois conforme coloquei o script, se é digitado um número inteiro funciona normalmente…mas se digitado uma string, ou valor double, float, seja qual for diferente de inteiro vai dar erro…
o que quero é tratar esse erro de forma apenas a voltar para o inicio, ou seja, a chamada da Input…entendes ?!
[quote=Danleonhart]GodZilla_XF
Não entendi… :shock:
pois conforme coloquei o script, se é digitado um número inteiro funciona normalmente…mas se digitado uma string, ou valor double, float, seja qual for diferente de inteiro vai dar erro…
o que quero é tratar esse erro de forma apenas a voltar para o inicio, ou seja, a chamada da Input…entendes ?![/quote]
Olha, eu sou meio assim de fazer gambiarras, mas vc pode fazer isso
public void fazerOQueTemQueFazer() {
try {
// aqui dentro voce faz o que tem que ser feito, e se gerar um exception ele faz uma chamada recursiva ao metodo em questao.
} catch (Exception e) {
fazerOQueTemQueFazer();
}
}
É usando try catch que quero fazer…
mas da maneira que você exemplifica tenho que colocar o script em um método e chamá-lo no main()…
e caso haja um erro, através do catch chamaria novamente este método, correto ?!
estou tentando fazer tudo dentro do main()…mas acho que só vai assim mesmo :-o
VALEU ! 8)
[code]boolean possoSair = false;
while (!possoSair) {
try {
// aqui dentro voce faz o que tem que ser feito, e se gerar um exception ele não faz nada e recursivamente o comporatmento acontece!
possoSair = true;
} catch (Exception e) {
}
}[/code]
Resolvido !
Foi me passado o seguinte exercício:
[color=brown]Crie um algoritmo que deveremos escrever de 1 a 20 e se escrevemos algum fora da ordem deve gerar uma mensagem de erro pedindo para digitar correto[/color]
Então, fiz assim:
// Importando classe Java:
import javax.swing.*;
public class JavaExec4 {
public static void main(String[] args) {
// Iniciando aplicação a partir de método personalizado (com parâmetro):
Checagem(1);
}
// Método personalizado de inicialização da aplicação:
public static void Checagem(int num ){
// Iniciando rotina:
for ( ; num <= 5; num++){
int n = Integer.parseInt(JOptionPane.showInputDialog(null, "Digite de 1 a 20 em ordem...",num + "º Valor" ,1));
/* Condição de verificação:
se o número informado for diferente da sequência
o método "pega" o último valor da sequência e reinicia o método.
O "return" é para sair do "for"... senão o ciclo continuaria...
*/
if (n != num){
JOptionPane.showMessageDialog(null, "Digite na ordem numérica !", "Aviso !", 1);
Checagem(num);
return;
}
}
}
}
Estou colocando comentários pois o Instrutor está exigindo… 
[color=blue]Obrigado pela força pessoal ![/color]