Resultado de Operação dentro de um JTextField

4 respostas
PedroVinicius

Olá pessoal… Este é meu primeiro post aqui. E venho perguntar algo que parece ser bastante comum aqui. Antes de mais nada quero dizer que fiz várias buscas, no entanto não consegui encontrar algo que resolvesse meu problema. A questão é bem simples, o problema é que sou bem leigo em Java e principalmente em Swing. Mas deixando de lado a enrolação, a questão é a seguinte. Preciso escrever o código de um programa para executar o cálculo da fórmula de Bhaskara. Não é segredo pra ninguém que antes é necessário calcular o Delta. Preciso fazer isto usando o Swing. Criei então no Net Beans, três JTextField’s, sendo 1 para o A, um para o B e um para o C, além de um botão que tem o cálculo propriamente dito como evento. Até o cálculo do resultado tudo bem. Dá certo. A questão é que preciso mostrar este resultado dentro de um JTextField. Como faço isso?

4 Respostas

ViniGodoy
  1. Crie um JLabel para o resultado, chame-o de lblResultado
  2. Após o cálculo, no evento do botão, faça:
if (delta < 0)
    lblResultado.setText("Não possui raízes reais");
else if (delta == 0)
    lblResultado.setText(String.format("A raíz é %.2f", resultado1));
else
    lblResultado.setText(String.format("As raízes são %.2f e %.2f", resultado1, resultado2));

Onde delta, resultado1 e resultado2 são o nome das variáveis que guardam esses valores.

PedroVinicius

Bem amigo... Em primeiro lugar muito obrigado pela atenção e intenção em me ajudar. Mas creio que não fui claro (coisa que percebi com bastante gente aqui). Tentando ser mais claro, segue o enunciado:

"Crie uma tela gráfica de um programa para calcular a fórmula de Bháskara. Se o Delta for negativo, uma mensagem deve transmitir essa informação."

Por enquanto, só a resolução do delta está de bom tamanho. Se eu conseguir aprender a colocar o dado da variável no JTextField eu consigo fazer o restante sozinho. Segue abaixo um pouco do meu código.

public class desafio extends javax.swing.JFrame {

  public desafio() {
      initComponents();
  }


  @SuppressWarnings("unchecked")


private void campo1ActionPerformed(java.awt.event.ActionEvent evt) {

}

private vois calcularActionPerformed(java.awt.event.ActionEvent evt) {

   double num1,num2,num3,resultado;

num1 = Double.parseDouble(campo1.getText());
num2 = Double.parseDouble(campo2.getText());
num3 = Double.parseDouble(campo3.getText());

resultado = num2*num2) - (4 * num1 * num3);

if (resultado < 0){
JOptionPane.showMessageDialog(null, "O Delta é impar!!");
}

}
private void delta_resActionPerformed(java.awt.event.ActionEvent evt){

}


public static void main(String args[]){
    java.awt.EventQueue.ivokeLater(new Runnable() {

public void run(){
  new desafio().setVisible(true);
}
});
}
ViniGodoy

Então, é exatamente o que descrevi.

Crie um campo4 na tela para guardar o resultado, e então, ajuste seu método:

private void calcularActionPerformed(java.awt.event.ActionEvent evt) {
   double a = Double.parseDouble(campo1.getText());
   double b = Double.parseDouble(campo2.getText());
   double c = Double.parseDouble(campo3.getText());

   double delta = (b*b) - (4 * a * c);
   if (delta &lt; 0) {
       campo4.setText(&quot;Delta é negativo!&quot;);
   } else if (delta == 0) {
       double resultado = -b / (2*a);
       campo4.setText(String.format(&quot;A raíz é %.2f&quot;, resultado));  
   } else {
       double resultado1 = (-b + Math.srqt(delta)) / 2*a;
       double resultado2 = (-b - Math.srqt(delta)) / 2*a;
       campo4.setText(String.format(&quot;As raízes são %.2f e %.2f&quot;, resultado1, resultado2));
   }
}

Cuidado com seu código:
1. Dê nomes descritivos para as variáveis. No caso da fórmula de Bhaskara, a b, c e delta é um nome muito melhor que num1, num2, num3 e resultado.
2. Cuidado com erros de digitação. O nome é void e não vois, e você só pode fechar parênteses se abri-los;
3. Um número impar é aquele que não é divisível por dois, isso é, expresso na forma 2N+1. Um número < 0 é negativo, não impar.

PedroVinicius

Mas amigo, quando executei aqui apareceu nos campos NaN, que pelos meus conhecimentos em JavaScript quer dizer “Nota a number”. O que pode estar acontecendo?

Criado 28 de outubro de 2012
Ultima resposta 29 de out. de 2012
Respostas 4
Participantes 2