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?
Resultado de Operação dentro de um JTextField
4 Respostas
- Crie um JLabel para o resultado, chame-o de lblResultado
- 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.
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);
}
});
}
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 < 0) {
campo4.setText("Delta é negativo!");
} else if (delta == 0) {
double resultado = -b / (2*a);
campo4.setText(String.format("A raíz é %.2f", resultado));
} else {
double resultado1 = (-b + Math.srqt(delta)) / 2*a;
double resultado2 = (-b - Math.srqt(delta)) / 2*a;
campo4.setText(String.format("As raízes são %.2f e %.2f", 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.
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?