Como calcular a idade

Galera consegui fazer um código muito simples e funciona perfeitamente, segue abaixo:

public int calculaIdade(String dt_nasc) {

// Data de hoje.
GregorianCalendar hoje = new GregorianCalendar();
int diah = hoje.get(Calendar.DAY_OF_MONTH);
int mesh = hoje.get(Calendar.MONTH) + 1;
int anoh = hoje.get(Calendar.YEAR);

// Data do nascimento.
int dian = Integer.valueOf(dt_nasc.substring(0,2));
int mesn = Integer.valueOf(dt_nasc.substring(3,5));
int anon = Integer.valueOf(dt_nasc.substring(6,10));

// Idade.
int idade;

if (mesn < mesh || (mesn == mesh && dian <= diah))
idade = anoh - anon;
else
idade = (anoh - anon)-1;

return (idade);
}

Estava com a mesma dúvida, e observei bem, e vi que é mais simples que eu imaginava.
Segue abaixo minha lógica. Está funcionando perfeitamente. Espero que ajude.

AQUI EU CHAMO A FUNÇÃO

if(aluno.get("DataNascimento") != null){ // essa linha é que pego a data de nascimento do banco no formato yyyy-MM-dd
                String DataAniversario = (String) (aluno.get("DataNascimento"));
                DataAniversario.replace("-", "/");
                System.out.println(DataAniversario);

                String Idade = CalcularIdade.CalculaIdade(
                    Integer.parseInt((DataAniversario.substring(8,10))),//ano
                    Integer.parseInt((DataAniversario.substring(5,7))), //mês
                    Integer.parseInt((DataAniversario.substring(0,4))));//dia
                jTextFieldDadosPrimariosIdadeAluno.setText(Idade);
           }

AQUI É A FUNÇÃO QUE RESOLVE A CONTA DA IDADE

package ClassesUtilitarias;

import java.util.Calendar;
import java.util.GregorianCalendar;

public class CalcularIdade {
    
    public static String CalculaIdade(int Dia, int Mes, int Ano){
        Calendar cal = GregorianCalendar.getInstance();
        int anoAtual = cal.get(Calendar.YEAR);
        int Idade = anoAtual - Ano;//Calcula a idade apenas com os anos
        int diaAtual = cal.get(Calendar.DAY_OF_MONTH);
        int mesAtual = cal.get(Calendar.MONTH);
        if(Dia >= diaAtual && Mes >= mesAtual){
            Idade--;
        }
        return String.valueOf(Idade);   
    }
}