JTable em branco

Estou tendo dificuldades com o model de uma JTable,estou fazendo alguma coisa errada,e minha JTable está aparecendo toda em branco,e gostaria de solicitar a ajuda de vcs,o que eu estou fazendo de errado?
Panel onde está minha JTable

package view;

import java.sql.*;
import java.util.ArrayList;
import javax.swing.*;

public class PanelConsulta extends JPanel {
    public PanelConsulta() throws SQLException{
        setLayout(null);
        JTable table;
        ArrayList dados = new ArrayList();
        String[] colunas = new String[]{"valor do Gasto","Razão do Gasto","Data do Gasto","ID"};
        Connection conexao = null;
        ResultSet resultado = null;
        Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/sistema_gasto","root","");
        String SQL = "SELECT * FROM gastos";
        PreparedStatement stm = con.prepareStatement(SQL);
        ResultSet rs = stm.executeQuery();
        rs.first();
        while(rs.next()){
            dados.add(new Object[]{rs.getString("valor_gasto"),rs.getString("razao_gasto"),rs.getString("dia_gasto"),rs.getInt("id")});
        }
        ModeloTabela modelo = new ModeloTabela(dados,colunas);
        table = new JTable();
        table.setBounds(100,100,400,200);
        
        add(table);
    }
    
}

Classe da minha model

public class ModeloTabela extends AbstractTableModel {
    private ArrayList linhas = null;
    private String[] colunas = null;
    public ModeloTabela(ArrayList lin,String[] col){
    setLinhas(lin);
    setColunas(col);
    }
    
    public ArrayList getLinhas(){
        return linhas;
    }
    public void setLinhas(ArrayList dados){
        linhas = dados;
    }
    
    public String[] getColunas(){
        return colunas;
    }
    
    public void setColunas(String[] nomes){
        colunas = nomes;
    }
    
    public int getColumnCount(){
        return colunas.length;
    }
    
    public int getRowCount(){
        return linhas.size();
    }
    
    public String getColumnName(int numCol){
        return colunas[numCol];
    }
    
    public Object getValueAt(int numLin,int numCol){
        Object[] linha = (Object[])getLinhas().get(numLin);
        return linha[numCol];
    }
    
}