Fazer um Calculo em dois campos e mostrar o resultado no terceiro campo automaticamente

3 respostas
G

Pessoal eu tenhu dois campos de texto no meu Jframe para fazer o calculo, e um terceiro para mostrar o resultado autimaticamente apos inserir os valores no campo 1 e 2, o noem dos campos é valor_uni e o margem_lucro e o preço_sugerido.

Calculo:
Valor_uni + Margem_lucro % (EM PORCENTAGEM %) = preço_sugerido!

Exemplo:
Na teoria o usuario iria informar o valor_uni = R$ 59,00 (VALOR UNITARIO) e depois informar o margem_lucro (MARGEM DE LUCRO EM PORCENTO) 70 (%) o resultado ia aparecer automaticamente no terceiro campo = R$ 100,30. sem ter botao nem nada para isso.

Alguem poderia medar um luz aqui :?: :?: :?: :?:
té +
vlw

3 Respostas

P

Boa tarde amigo,

Bem, você pode criar um objeto para tratar os eventos do teclado, de modo que sempre que o ENTER for pressionado no segundo TextField, o cálculo seja executado.

O meu exemplo faz isso. Veja:

package Exemplo1;

import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;

public class ExemploFrame extends JFrame {
	
	JTextField valor1;
	JTextField valor2;
	JTextField resultado;
	int valorResultado;
	
	public ExemploFrame(){
		super("Exemplo");
		this.setSize(500,100);
		this.setDefaultCloseOperation(this.EXIT_ON_CLOSE);
		this.setLayout(new FlowLayout());
		
		this.add(new JLabel("valor 1: "));
		this.add(valor1=new JTextField(5));
		this.add(new JLabel("valor 2: "));
		this.add(valor2=new JTextField(5));
		this.add(new JLabel("resultado da soma: "));
		this.add(resultado=new JTextField(5));
		resultado.setEditable(false);
		
		//criando uma classe interna anônima para tratar os eventos do teclado
		valor2.addKeyListener(new KeyAdapter(){

	
			@Override
			public void keyPressed(KeyEvent e) {
				if(e.getKeyCode()==10){
					valorResultado=Integer.parseInt(valor1.getText())+Integer.parseInt(valor2.getText());
					resultado.setText(String.format("%d",valorResultado));
				}
				
			}

		});
		
	}

}

Espero ter ajudado!

Abraço

R

Você sabe como pegar o valor de um campo?

E colocar o valor em um campo?

Sabe em que situação quer que ocorra a soma? Quando o usuario digitar qualquer numero? Quando o usuario tirar o foco do input?

Conheçe sobre tratamento de eventos do input?

Sabe como fazer conversoes de String para Integer ou Double, e vice versa?

G

Valeu pelas respostas ja consegui resolver o problema…

Criado 17 de julho de 2010
Ultima resposta 20 de jul. de 2010
Respostas 3
Participantes 3