Duvida com JText

Olha galera seguinte, eu tenho um JFormatedText que tem data de nascimento de um cidadão e também tenho um JText com a idade deste cidadão, mas eu gostaria de preencher este JText automaticamente com a idade de acordo com a data de nascimento.

Alguém ae tem alguma dica de como eu faço isto!?

Obrigado.

Olá

e o metodo setText() não funciona?

É só pegar a data de nascimento no JTextField, pegar a data do sistema. Subtrair uma da outra e colocar no JTextField de Anos.

Olha esse link:
http://www.furutani.com.br/2009/02/calculo-da-diferenca-entre-datas-em-java/

Ensina a fazer contas entre datas e retorna uma quantidade de dias.
Você dividir por 365 e ter uma quantidade de anos. Mas por causa dos bissextos seria legal verificar a data atual do sistema
e comparar o dia e o mês também.

E pra pegar a data do sistema é só usar o:

 Date data = new Date(System.currentTimeMillis());

Galera mais é o seguinte, a pessoa vai digitar e a idade vai ter que ser calculada no JTextField quando terminar de digitar a data de nascimento.

Há possibilidades!?

nuss agora entendi a sua duvida…

Da uma olhada aqui: http://java.sun.com/docs/books/tutorial/uiswing/misc/focus.html

ou: http://java.sun.com/docs/books/tutorial/uiswing/events/focuslistener.html

Veja se ajuda.
Att.

[quote=marcosvidolin]nuss agora entendi a sua duvida…

Da uma olhada aqui: http://java.sun.com/docs/books/tutorial/uiswing/misc/focus.html

ou: http://java.sun.com/docs/books/tutorial/uiswing/events/focuslistener.html

Veja se ajuda.
Att.[/quote]

Olá dei uma olhada e como eu sou meio que iniciante, rsrs, não consegui tirar muita informação.

Eu estou fazendo um sistema em 3 camadas, e então eu devo add um focuslistener no caso do JTextField que eu vou colocar a data de nascimento não é!? Para que possa ser inserida a idade de acordo com a data inserido no JText de lá.

é isto mesmo!?

Olá…

fiz um exemplo bem simples baseado na documentação que te passei, veja se ajuda:

import java.awt.Rectangle;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;

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

public class TesteFocusListener extends JFrame implements FocusListener {

	private JPanel jContentPane = null;
	private JTextField tfCampo = null;
	private JLabel lbExibe = null;
	private JTextField tfCampo2 = null;

	
	public TesteFocusListener() {
		super();
		initialize();
	}

	
	private void initialize() {
		this.setSize(300, 200);
		this.setContentPane(getJContentPane());
		this.setTitle("Teste FocusListener");
	}


	private JPanel getJContentPane() {
		if (jContentPane == null) {
			jContentPane = new JPanel();
			jContentPane.setLayout(null);
			jContentPane.add(getTfCampo());
			jContentPane.add(getTfCampo2());
			jContentPane.add(getLbExibe());
		}
		return jContentPane;
	}


	private JTextField getTfCampo() {
		if (tfCampo == null) {
			tfCampo = new JTextField();
			tfCampo.setBounds(new Rectangle(10, 10, 116, 30));

			// Aqui adiciono o Listener. Como implemento FocusListener nesta classe, passo this como argumento.
			// O melhor e criar uma classe que implemente FocusListener e passe o objeto desta outra classe aqui
			tfCampo.addFocusListener(this);
		}
		return tfCampo;
	}
	
	private JTextField getTfCampo2() {
		if (tfCampo2 == null) {
			tfCampo2 = new JTextField();
			tfCampo2.setBounds(new Rectangle(10, 40, 114, 30));
		}
		return tfCampo2;
	}
	
	private JLabel getLbExibe() {
		if(lbExibe == null) {
			lbExibe = new JLabel();
			lbExibe.setText("JLabel");
			lbExibe.setBounds(new Rectangle(10, 80, 111, 30));
		}
		return lbExibe;
	}
	
	@Override
	public void focusGained(FocusEvent e) {
		// Nao farei nada quando focar aqui
	}


	@Override
	public void focusLost(FocusEvent e) {
		lbExibe.setText(tfCampo.getText());
	}
	

	public static void main(String[] args) {
		TesteFocusListener tfl = new TesteFocusListener();
		tfl.setVisible(true);
	}
	
}

Muito bom cara, muito obrigado mesmo. E eu posso usar o action on change para fazer consultas sql com auto completar correto!?

Dae eu tenho que adicionar no mesmo esquema, no jtext e gerar uma consulta dentro dele correto!? Você aconselha fazer isto!?

abraços

Olá

Sim, É possível! Você pode implementar uma classe DAO com um método que retorne o conteúdo do campo que você deseja, tendo como base (chave) outro campo.

Neste caso você atribuiria um JTextField da mesma forma que o exemplo que passei, mas, ao invés de pegar o conteúdo de um outro campo você chama a função que retorna um valor de uma consulta no banco, por exemplo.

Ok brother, valeu pelas dicas, vou tentar fazer isto aqui nas consultas que eu for gerar.

Mas antes de fazer esta consulta, to tendo que gravar e estou com umas dificuldades, pois eu coloquei um campo com data do JCalendar, não sei se conhece!?

    public JDateChooser dataInicio = new JDateChooser();
    public JDateChooser dataFim = new JDateChooser();

Só que as datas estão vindo com a seguinte formatação:

Thu May 20 00:00:00 BRT 2010 (inicio)
Fri May 21 09:29:40 BRT 2010 (fim)

vc já usou JCalendar para algo em que pudesse me ajudar com a formatação disto, pois estou quebrando a cabeça para colocar isto no banco de dados e não aceita nem a paulada. rsrs

obrigado.