Pegar valor de JTextField

Bom dia pessoal do guj,
preciso pegar valor de duas jtextfields, somar esses valores e lançar em outra jtextfield…
Quero pegar o que for digitado na getTxtPreco() e na getTxtDesconto() e lançar em getTxtTotalProduto().
Como fazer?

	private JTextField getTxtPreco() {
		if (txtPreco == null) {
			txtPreco = new JTextField();
			txtPreco.setBounds(new Rectangle(80, 270, 80, 20));
		}		
		return txtPreco;
	}
	
	private JTextField getTxtDesconto() {
		if (txtDesconto == null) {
			txtDesconto = new JTextField();
			txtDesconto.setBounds(new Rectangle(300, 270, 80, 20));
		}
		return txtDesconto;
	}

         private JTextField getTxtTotalProduto() {
		if (txtTotalProduto == null) {
			txtTotalProduto = new JTextField();
			txtTotalProduto.setBounds(new Rectangle(215, 310, 80, 20));
		}
		return txtTotalProduto;
	}

Antes de mais nada, carinha, você precisa pensar no “quando”? Quando você quer somar esses valores. Quando se clicar um botão?

Pegar o valor da txtField é fácil. É só usar o método getText(). Daí você converte o texto em um valor numérico, soma e escreve o resultado no total com o método setText().

Mais que isso é entregar o exercício pronto, e isso está me parecendo com “lição de casa”… Posso te ajudar, mas não posso entregar, senão não é válido como exercício…

[quote=abmpicoli]Antes de mais nada, carinha, você precisa pensar no “quando”? Quando você quer somar esses valores. Quando se clicar um botão?

Pegar o valor da txtField é fácil. É só usar o método getText(). Daí você converte o texto em um valor numérico, soma e escreve o resultado no total com o método setText().

Mais que isso é entregar o exercício pronto, e isso está me parecendo com “lição de casa”… Posso te ajudar, mas não posso entregar, senão não é válido como exercício…
[/quote]

Isso mesmo.
Porém, se você já tem o evento, irá funcionar mais ou menos assim:

[code]double preco = Double.valueOf(getTxtPreco().getText());
double desconto = Double.valueOf(getTxtDesconto().getText());

double precoComDesconto = preco - desconto;

getTxtPrecoTotalProduto().setText(String.valueOf(precoComDesconto));[/code]

Valeu!

esqueci de informar que queria sem utilizar botão algum, como se fosse automatico msm…

Atenção - estou usando o MigLayout, mas o exemplo abaixo não depende do MigLayout para você entendê-lo. Depende só do focusLost() (é quase automático, depende só de você mudar o foco para outro controle para que os valores sejam atualizados. )

package guj;

import java.awt.BorderLayout;
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import net.miginfocom.swing.MigLayout;
import javax.swing.JLabel;
import javax.swing.JTextField;
import java.awt.event.FocusAdapter;
import java.awt.event.FocusEvent;

public class TesteSomaAutomatica extends JFrame {

    private JPanel contentPane;
    private JLabel lbl_nota1;
    private JLabel lbl_nota2;
    private JLabel lbl_soma;
    private JLabel lbl_media;
    private JTextField txtNota1;
    private JTextField txtNota2;
    private JLabel lblSoma;
    private JLabel lblMedia;

    /**
     * Launch the application.
     */
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    TesteSomaAutomatica frame = new TesteSomaAutomatica();
                    frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    /**
     * Create the frame.
     */
    public TesteSomaAutomatica() {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(100, 100, 450, 300);
        contentPane = new JPanel();
        contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
        setContentPane(contentPane);
        contentPane.setLayout(new MigLayout("", "[][grow]", "[][][][]"));
        contentPane.add(getLbl_nota1(), "cell 0 0,alignx trailing");
        contentPane.add(getTxtNota1(), "cell 1 0,growx");
        contentPane.add(getLbl_nota2(), "cell 0 1,alignx trailing");
        contentPane.add(getTxtNota2(), "cell 1 1,growx");
        contentPane.add(getLbl_soma(), "cell 0 2,alignx trailing");
        contentPane.add(getLblSoma(), "cell 1 2");
        contentPane.add(getLbl_media(), "cell 0 3,alignx trailing");
        contentPane.add(getLblMedia(), "cell 1 3");
    }

    private JLabel getLbl_nota1() {
        if (lbl_nota1 == null) {
            lbl_nota1 = new JLabel("Nota 1");
        }
        return lbl_nota1;
    }

    private JLabel getLbl_nota2() {
        if (lbl_nota2 == null) {
            lbl_nota2 = new JLabel("Nota 2");
        }
        return lbl_nota2;
    }

    private JLabel getLbl_soma() {
        if (lbl_soma == null) {
            lbl_soma = new JLabel("Soma");
        }
        return lbl_soma;
    }

    private JLabel getLbl_media() {
        if (lbl_media == null) {
            lbl_media = new JLabel("Media");
        }
        return lbl_media;
    }

    private JTextField getTxtNota1() {
        if (txtNota1 == null) {
            txtNota1 = new JTextField();
            txtNota1.addFocusListener(new FocusAdapter() {
                @Override
                public void focusLost(FocusEvent e) {
                    calcular();
                }
            });
            txtNota1.setColumns(10);
        }
        return txtNota1;
    }

    private JTextField getTxtNota2() {
        if (txtNota2 == null) {
            txtNota2 = new JTextField();
            txtNota2.addFocusListener(new FocusAdapter() {
                @Override
                public void focusLost(FocusEvent e) {
                    calcular();
                }
            });
            txtNota2.setColumns(10);
        }
        return txtNota2;
    }

    private JLabel getLblSoma() {
        if (lblSoma == null) {
            lblSoma = new JLabel("");
        }
        return lblSoma;
    }

    private JLabel getLblMedia() {
        if (lblMedia == null) {
            lblMedia = new JLabel("");
        }
        return lblMedia;
    }

    private void calcular() {
        double val1 = 0;
        double val2 = 0;
        try {
            val1 = Double.parseDouble(getTxtNota1().getText());
        } catch (Exception ex) {
        }
        try {
            val2 = Double.parseDouble(getTxtNota2().getText());
        } catch (Exception ex) {
        }
        getLblSoma().setText(String.format("%f", val1 + val2));
        getLblMedia().setText(String.format("%f", (val1 + val2) / 2));
    }
}