@wnv44 escreveu:
Acredito que seja um erro simples, é o seguinte, eu tenho 3 campos pra digitar no
JTextField
, sendo que o primeiro é a área, o segundo é a base e o terceiro é a hipotenusa. Eu só posso aceitar que o usuário digite 2 valores, se ele digitar a área e a base eu tenho que calcular a hipotenusa. Se digitar a hipotenusa e a área, eu tenho que calcular a base....
Está dando erro pra mim quando o usuário digita 1 ou nenhum valor, o resto está dando certo.Observação: o campo
JTextfield
só vai aceita números, então não precisa se preocupar com isso, e não precisem se preocupar se a fórmula está correta.package aulaSwing; import java.awt.Color; import java.awt.Container; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JTextField; public class Hipotenusa extends TelaPadrao implements ActionListener { private double area, base, hipotenusa; private JTextField a, b; private JTextField h = null; private JLabel label = new JLabel(); private JButton botao; public Hipotenusa() { setTitle("Calcular hipotenusa"); Container container = getContentPane(); setBounds(200, 150, 850, 500); a = criaCampoNumerico("Altura", 30, 140); saltaLinha(); b = criaCampoNumerico("Base", 30, 140); saltaLinha(); h = criaCampoNumerico("Hipotenusa", 30, 140); botao = new JButton("Calcular"); botao.setBounds(300, 200, 120, 25); container.add(botao); botao.addActionListener(this); label.setBounds(150, 120, 220, 120); container.add(label); label.setBackground(Color.BLACK); setVisible(true); } public static void main(String[] args) { new Hipotenusa(); } public void actionPerformed(ActionEvent e) { double aux; if (a.getText() !="" && b.getText() !="" && h.getText().equals("")) { System.out.println(a.getText()); area = Double.parseDouble(a.getText()); base = Double.parseDouble(b.getText()); aux = (Math.pow(area, 2) + Math.pow(base, 2)); hipotenusa = Math.sqrt(aux); label.setText("Hipotenusa: " + hipotenusa); System.out.println(b.getText()); } else if (a.getText() !="" && h.getText() !="" && b.getText().equals("")) { area = Double.parseDouble(a.getText()); hipotenusa = Double.parseDouble(h.getText()); base = area * hipotenusa; label.setText("base: " + base); System.out.println(h.getText()); } else if (b.getText() !="" && h.getText() !="" && a.getText().equals("")) { base = Double.parseDouble(b.getText()); hipotenusa = Double.parseDouble(h.getText()); area = base * hipotenusa; label.setText("area: " + area); System.out.println(b.getText()); } else label.setText("Digite em 2 campos!"); } }
Mensagens: 1
Participantes: 1