Swing Calcular idade

bem, tenho dúvidas com relação a esse problema…:
Quero exibir uma janela Com os campos :
Informe seu nome:
Informe o ano de nascimento:
Quando apertar Ok ele retorna o nome e a idade do usuário em JOpitionPane…

[code]import java.awt.Color;
import java.awt.Container;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

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

public class Pessoa extends JFrame{
/**
*
*/
private static final long serialVersionUID = 1L;
private JLabel lbTitulo;
private JTextField tfNum1;
private JTextField tfNum2;

private JButton btOk;
private JButton btFechar;
public Pessoa(){
	
	setTitle("Calcula Idade");
	
	Container c = this.getContentPane();
	c.setLayout(null);


	setSize(380, 270);
	setResizable(false);
	setLocationRelativeTo(null);
	setDefaultCloseOperation(EXIT_ON_CLOSE);
	setVisible(true);
	CriarLabel(c);
	CriarTextField(c);
	CriarBotao(c);

	
}

public void CriarLabel(Container c){
	this.lbTitulo = new JLabel("Idade");
	
	this.lbTitulo.setBounds(130, 20, 200, 20);
	this.lbTitulo.setFont(new Font("Arial", Font.BOLD, 16));
	this.lbTitulo.setForeground(Color.BLUE);
	
	
	c.add(this.lbTitulo);
	
}
public void CriarTextField(Container c){
	
	this.tfNum1 = criaTextFieldNumero(c, " Nome ", 60);
	this.tfNum2 = criaTextFieldNumero(c, " Ano: ", 85);


} 
	private JTextField criaTextFieldNumero(Container c, String rotulo, int posY) {
	JLabel lb = new JLabel(rotulo);
	lb.setBounds(20, posY, 60, 20);
	c.add(lb);

	JTextField tfNum = new JTextField(20);
	tfNum.setToolTipText(rotulo);
	tfNum.setBounds(85, posY, 100, 20);
	
	c.add(tfNum);

	return tfNum;
}

public void CriarBotao(Container c){

	this.btOk = new JButton("Ok");
	this.btFechar = new JButton("Fechar");

	this.btOk.setBounds(115, 200, 60, 20);
	this.btFechar.setBounds(195, 200, 80, 20);

	this.btOk.setToolTipText("Clique aqui para confirmar");
	this.btFechar.setToolTipText("Clique aqui para fechar o programa");

	this.btOk.setActionCommand("OK");
	this.btFechar.setActionCommand("FECHAR");
	
	OuvinteBotao ouvinteBotao = new OuvinteBotao();

	this.btOk.addActionListener(ouvinteBotao);
	this.btFechar.addActionListener(ouvinteBotao);

	c.add(this.btOk);
	c.add(this.btFechar);
	
	
}

private class OuvinteBotao implements ActionListener {

@Override  
public void actionPerformed(ActionEvent ae) {  

    if (ae.getSource() instanceof JButton) {  
        JButton jb = (JButton) ae.getSource();  
        if ("OK".equals(jb.getActionCommand())) {  
 
        
         //não sei comoo FAÇO PRA CALCULAR OS VALORES AQUI
         
           
        } else if ("FECHAR".equals(jb.getActionCommand())) {  
            
        	
        	System.exit(1);  
        }  
    }  
}  

}
}

[/code]

essa classe acima eu n sei como faz pra pegar a data e diminuir da data atual pra transformar em anos…
Esta abaixo é a classe que vai gravar e ter o método de callcular a data…

[code]import java.util.Date;
import java.util.Scanner;

import javax.swing.JOptionPane;

public class Guarda {

private String nomes;
private Date ano;

public Guarda(){
	
	
	
}

public String getNomes() {
	return nomes;
}

public void setNomes(String nomes) {
	this.nomes = nomes;
}

public Date getAno() {
	return ano;
}

public void setAno(Date ano) {
	this.ano = ano;
}

}
[/code]

Olá para trabalhar com datas recomendo vc dar uma olhada no JodaTime http://joda-time.sourceforge.net/.
Muito mais simples de se fazer calculos como o que vc precisa.

[]'s

Mas vc não sabe de nenhuma solução simples usando só estes recursos?

[quote=thiagocg]Olá para trabalhar com datas recomendo vc dar uma olhada no JodaTime http://joda-time.sourceforge.net/.
Muito mais simples de se fazer calculos como o que vc precisa.

[]'s[/quote]

hey
1 thiagocg!? vc conhece um joda em portugues?

Já tentou pesquisar aqui mesmo no GUJ?Um exemplo:
http://www.guj.com.br/java/130741-calculo-com-datas

Se for um tutorial tem esse aqui:
http://www.furutani.com.br/2010/02/simplificando-calculos-com-datas-com-joda-time-java/

Mas tem vários exemplos já postados aqui no GUJ. :wink:

achei um pequeno exemplo aqui, qualquer coisa vc pode adaptar…

Calendar dataInicio = Calendar.getInstance();
dataInicio.set(2011, Calendar.MAY, 1);

Calendar dataFinal = Calendar.getInstance();

long diasDiferenca = (dataFinal.getTimeInMillis() - dataInicio.getTimeInMillis()) / (1000 * 60 * 60 * 24);

System.out.println("Dias de Diferença: " + diasDiferenca);