Criar uma tabela dependendo de um calculo especifico ao clicar em um botão?

Qual é a melhor solução para exibir a tabela com os dados, dependendo do calculo feito pelos valores dados pelo usuário, quando o botão é clicado?

Quando eu executo o programa, ele terá uma tabela vazia, ai dependendo do calculo, como posso fazer pra listar todos os valores dos juros compostos?

import java.awt.*;
import java.awt.event.*;
import javax.swing.JPanel;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JTextField;

public class CalculadoraDeJuros extends JFrame implements ActionListener{
   private JLabel lValor, lTaxa, lAnos;
   private JTextField tValor, tTaxa, tAnos;
   private JButton calcular;
   private JPanel painelFundo;
   private JTable tabela;
   private JScrollPane barraRolagem;
   
   
    
   String [] colunas = {"Ano", "Valor", "Taxa"}; 
   
   Object [][] dados = {};
   
   public CalculadoraDeJuros() {
        super ("Calculadora de juros compostos");
   }
   
   public void criarJanela(){
   
      //atributos para entrada de valores
      lValor = new JLabel("Valor");
      lTaxa = new JLabel("Taxa anual");
      lAnos = new JLabel("Anos de aplicação");
      tValor = new JTextField(20);
      tTaxa = new JTextField(20);
      tAnos = new JTextField(20);
      calcular = new JButton("Calcular");
      //painel para entrada de dados
      JPanel entradaDeDadosPanel = new JPanel(new GridLayout(2,4));
      //painel para saida de dados
      JPanel saidaDeDadosPanel = new JPanel(new GridLayout(1,1));
      //botao calcular
      JPanel botoesAcao = new JPanel(new GridLayout(1,1));
      
      entradaDeDadosPanel.add(lValor);
      entradaDeDadosPanel.add(lTaxa);
      entradaDeDadosPanel.add(lAnos);
      entradaDeDadosPanel.add(tValor);
      entradaDeDadosPanel.add(tTaxa);
      entradaDeDadosPanel.add(tAnos);
      
      botoesAcao.add(calcular); 
   
      painelFundo = new JPanel();
      painelFundo.setLayout(new GridLayout(1,2));
      tabela = new JTable(dados, colunas);
      barraRolagem = new JScrollPane(tabela);
      painelFundo.add(barraRolagem);
      
      //adicionando o painel de entrada e saida de dados
      Container container = getContentPane();
      container.setLayout(new BorderLayout());
      
      container.add(entradaDeDadosPanel, BorderLayout.NORTH);
      container.add(botoesAcao, BorderLayout.CENTER);
      container.add(painelFundo, BorderLayout.SOUTH);
      
      //adicionando action listener
      calcular.addActionListener(this);
      
      //configurações basicas de tela
      setDefaultCloseOperation(EXIT_ON_CLOSE);
      setSize(600,600);
      setVisible(true);
      setLocationRelativeTo(null);
      
   }
   
   public void actionPerformed(ActionEvent e){
      if(e.getSource() == calcular){
      
         double valor   = Double.parseDouble(tValor.getText());
         double taxa    = Double.parseDouble(tTaxa.getText());
         int anos       = Integer.parseInt(tAnos.getText());
         
         //instanciando o vetor e calculando os valores
         double valorAnual[] = new double[anos + 1];
         //valor inicial para o array
         valorAnual[0] = valor;
         
         //saída de dados
         String msg = String.format("Valor inicial: %.2f | Taxa ao ano: %.1f%% | Anos de aplicação: %d", 
                                    valor, taxa, anos);      
         System.out.println(msg);
         //convertendo a taxa de porcentagem para fração
         taxa = (taxa / 100) + 1; //1 para aumento (pegar 100% do valor e adicionar a taxa dada)
         //PG

            
         for(int i = 1; i <= anos; i++){
            valorAnual[i] = valorAnual[i - 1] * taxa;
            System.out.format("Valor no %dº ano: %.2f\n", i, valorAnual[i]);
         }
      }
   }
   
   public static void main(String [] args){
      CalculadoraDeJuros cdj = new CalculadoraDeJuros();
      cdj.criarJanela();
   }
}

Use abstractTableModel ai lá tu pode criar um método que receba os valores e atualize a tabela.