Ajuda com JOptionPane

Eu preciso recuperar 3 valores do usuário e armazená-los em variaveis. Após isso, escrever uma mensagem com o resultado de um cálculo com essas variáveis.
Preciso que fique nesse ciclo até que ele clique em Cancelar ao invez de OK. Como faço isso?

do{ x1 = Double.parseDouble(JOptionPane.showInputDialog("Entre com o primeiro atributo")); x2 = Double.parseDouble(JOptionPane.showInputDialog("Entre com o segundo atributo")); x3 = Double.parseDouble(JOptionPane.showInputDialog("Entre com o terceiro atributo")); JOptionPane.showMessageDialog(null, "Mensagem de Resposta"); } while (/*condição de parada com base no botão apertado*/);
Outra dúvida, por acaso tem como eu recuperar as 3 variáveis de uma vez por meio do JOptionPane?

Bom… JOptionPane, através do showInputMessage, retorna apenas String. Então você vai ter que sempre converter para o que você quiser, caso não queira String.

Sempre que quiser usar uma classe, procure no google a documentação dela. Coloque ‘joptionpane 6’ para pegar a documentação dela na versão 6.

http://download.oracle.com/javase/6/docs/api/javax/swing/JOptionPane.html

O resto é lógica de programação mesmo.

Eu já estou fazendo a conversão pra Double, mas esse não é o problema.
O que eu preciso saber é quando ele clicar em Cancelar ao invez de OK.

kra…tente fazer assim.

String str;
        while ((str = JOptionPane.showInputDialog(null, "Entre com o valor.")) != null) {
            System.out.println(str);
        }

Assim quando o showInputDialog retornar null, ele fecha.

t+ e boa sorte.

E com relação a recuperar os três valores numa única variável você pode fazer:

x1 += Double.parseDouble(JOptionPane.showInputDialog("Entre com o primeiro atributo"));
x1 += Double.parseDouble(JOptionPane.showInputDialog("Entre com o primeiro atributo")); 
x1 += Double.parseDouble(JOptionPane.showInputDialog("Entre com o primeiro atributo"));

Lembrando de antes de chamar o código acima, inicializar a variável com pelo menos o valor 0:

double x1 = 0;

Espero ter ajudado ;D

nao precisa criar varios joptions, como esta tentando

basta fazer assim

       double valor = 0 ;
       int indice = 1;       
       String str;
       while ((str = JOptionPane.showInputDialog(null, "Entre com o " + indice + "° valor")) != null) {  
           indice++;
           valor += Double.parseDouble(str); 
           System.out.println(valor);  
       }  

Bem mais simples :wink:

t+ e boa sorte

Para digitar os 3 valores dentro de apenas 1 JOptionPanel , vc precisaria colocar 3 JTextFields dentro de um JPanel e depois adicionar dentro do JOptionPanel .

Acho mais fácil continuar fazendo separados. ^^