Olá pessoal.
Essa é uma parte de um código que estou fazendo…
Alguém sabe me dizer como que faz pra: Quando clicar em CANCELAR ele voltar a fazer a mesma pergunta!!!?/
[code]public class TesteValidacaoJOP {
public static void main(String[] args) {
TesteValidacaoJOP v = new TesteValidacaoJOP();
int qtd = v.validaCampo(JOptionPane.showInputDialog("Informe a sua idade:"));
}
private int validaCampo(String valor) {
int d = 0;
if (valor != null) {
d = Integer.parseInt(valor);
} else {
int op = JOptionPane.showConfirmDialog(null, "Tem certeza que deseja sair?", "Sair", JOptionPane.OK_CANCEL_OPTION);
if (op == JOptionPane.OK_OPTION)
System.exit(0);
if (op == JOptionPane.CANCEL_OPTION)
JOptionPane.showMessageDialog(null, "Por validar :D");
}
return d;
}
Não sei qual é a pergunta que você quer faze, mas segue um exemplo.
Aqui enquanto o número for menor que 0 é perguntado ao usuário se ele quer sair, se quiser
então o número digitado é exibido se não é feito novamente a pergunta para inserir um número,
lembrando que a pergunta de que se deseja ou não continuar somente é feita quando o número
digitado for menor que 0.
public class JOptionPaneTest {
private static int validNumber;
public static void main(String[] args) {
boolean status = false;
do {
status = valid(JOptionPane.showInputDialog("Type a number: "));
} while (!status);
JOptionPane.showMessageDialog(null, "The number typed it was: " + getNumber());
}
public static boolean valid(String number) {
validNumber = Integer.parseInt(number);
if (validNumber > 0)
return true;
int op = JOptionPane.showConfirmDialog(null, "You all right of that it wants to exit?",
"Exit", JOptionPane.OK_CANCEL_OPTION);
if (op == JOptionPane.CANCEL_OPTION)
return false;
if (op == JOptionPane.OK_OPTION)
JOptionPane.showMessageDialog(null, "Thanks");
return true;
}
public static int getNumber() {
return validNumber;
}
}
[quote=WendersonLP]Não sei qual é a pergunta que você quer faze, mas segue um exemplo.
Aqui enquanto o número for menor que 0 é perguntado ao usuário se ele quer sair, se quiser
então o número digitado é exibido se não é feito novamente a pergunta para inserir um número,
lembrando que a pergunta de que se deseja ou não continuar somente é feita quando o número
digitado for menor que 0.
public class JOptionPaneTest {
private static int validNumber;
public static void main(String[] args) {
boolean status = false;
do {
status = valid(JOptionPane.showInputDialog("Type a number: "));
} while (!status);
JOptionPane.showMessageDialog(null, "The number typed it was: " + getNumber());
}
public static boolean valid(String number) {
validNumber = Integer.parseInt(number);
if (validNumber > 0)
return true;
int op = JOptionPane.showConfirmDialog(null, "You all right of that it wants to exit?",
"Exit", JOptionPane.OK_CANCEL_OPTION);
if (op == JOptionPane.CANCEL_OPTION)
return false;
if (op == JOptionPane.OK_OPTION)
JOptionPane.showMessageDialog(null, "Thanks");
return true;
}
public static int getNumber() {
return validNumber;
}
}
Espero poder ajudar.[/quote]
Olá WendersonLP,
A questão está na primeira pergunta feita: "JOptionPane.showInputDialog("Type a number: “)”
Se clicar em cancelar vai dar uma exceção “NullPointerException”…
No lugar de dar essa exceção eu queria que apresentaçe um ShowConfirmDialog (Sair ou Não),
Se clicar em NAO, ele volta pra mesma pergunta.
Example.:
Digamos que são 2 ou mais perguntas:
1 - Digite a sua idade;
2 - Digite o seu telefone;
Run…
-Digitei a idade,
Quando chegar na pergunta 2, eu clico em cancelar…
Agora eu quero confirmação (showConfirmDialog. OK.CANCEL).
public static void main(String[] args) {
String age = readAge();
String phone = readPhone();
JOptionPane.showMessageDialog(null, "Age: " + age + "\nPhone: " + phone);
}
public static String readAge() {
String number1;
while (true) {
number1 = JOptionPane.showInputDialog("How old you is?");
if (number1 == null) { // clicou em cancelar
int option = JOptionPane.showConfirmDialog(null, "You is all right?", "Exit",
JOptionPane.YES_NO_OPTION);
if (option == JOptionPane.YES_OPTION)
break;
}
else
break;
}
return number1;
}
public static String readPhone() {
String number1;
while (true) {
number2 = JOptionPane.showInputDialog("Type the number of phone:");
if (number2 == null) { // clicou em cancelar
int option = JOptionPane.showConfirmDialog(null, "You is all right?", "Exit",
JOptionPane.YES_NO_OPTION);
if (option == JOptionPane.YES_OPTION)
break;
}
else
break;
}
return number2;
}