Quantcast
Channel: Programação - GUJ
Viewing all articles
Browse latest Browse all 33093

Preciso digitar em 3 campos JTexfield

$
0
0

@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

Ler tópico completo


Viewing all articles
Browse latest Browse all 33093


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>