Cadastrar no JInternal frame e setar tabela no JFrame

Pessoal estou com o seguinte problema eu estou criando um sistema de controle financeiro pessoal onde eu tenho um Jframe Principal que atravéz de barra de menu abra JInternalFrames para cadastrar contas a pagar e a receber e gostaria de saber como eu cadastro isso no JInternal Frame e quando clicar no botão cadastrar do JInternalFrame quero que altomaticamente esse cadastro seja incrementado na minha tabela de resultados que esta no JFrame , quando eu cadastro o produto vai para o banco de dados que criei mas soh atualiza a Jtable quando reinicio o programa ou seja esta cadastrando certo mas nao atualiza a table assim que clico em cadastrar desde já muito obrigado amigos um abraço a todos…

public class TrabalhandoTabelas extends javax.swing.JFrame {
    /**
     * Creates new form TrabalhandoTabelas
     */
    public TrabalhandoTabelas() {
        initComponents();
        DefaultTableModel modelo = (DefaultTableModel) jtbProdutos.getModel();
        jtbProdutos.setRowSorter(new TableRowSorter(modelo));
        ViewHome view = new ViewHome();
        view.setVisible(true);

        readJTable();
    }
    public void readJTable() {
        DefaultTableModel modelo = (DefaultTableModel) jtbProdutos.getModel();
        modelo.setNumRows(0);
        ProdutoDAO pdao = new ProdutoDAO();
        for (Produto p : pdao.read()) {
            modelo.addRow(new Object[]{p.getId(), p.getDescricao(), p.getQtde(), p.getPreco()});
        }
    }
    public void readJTableForDesc(String desc) {
        DefaultTableModel modelo = (DefaultTableModel) jtbProdutos.getModel();
        modelo.setNumRows(0);
        ProdutoDAO pdao = new ProdutoDAO();
        for (Produto p : pdao.readForDesc(desc)) {
            modelo.addRow(new Object[]{p.getId(), p.getDescricao(), p.getQtde(), p.getPreco()});
        }
    }

OBSERVAÇÃO SEU ALGUEM QUISER O CODIGO INTEIRO DO PROGRAMA PARA ESTUDAR OU APRIMORAR FAVOR ENTRAR EM CONTATO POR E-MAIL: peterdmitrukjunior@gmail.com

Pessoal kkkkk eu mesmo consegui resolver o problema sou iniciante em programação na verdade sou quase 0 KM ainda mas vou deixar o exemplo caso alguem tenha a mesma dificuldade pra somar no forum ai um abraço a todos

AQUI ESTA O CODIGO QUE ESTA NO JFRAME:

public TelaCFPbeta() {
initComponents();
this.gerenteDeJanelas = new GerenteDeJanelas(jdpPrincipal);
checkUsuarios();
DefaultTableModel modelo = (DefaultTableModel) jtbContas.getModel();
jtbContas.setRowSorter(new TableRowSorter(modelo));
readJTable();
//jspResultados.setVisible(false);
}

public void readJTable() {
    DefaultTableModel modelo = (DefaultTableModel) jtbContas.getModel();
    modelo.setNumRows(0);
    ContasDAO pdao = new ContasDAO();
    for (Contas c : pdao.read()) {
        modelo.addRow(new Object[]{c.getDescricao(), c.getTipoconta(), c.getValor()});
    }
}

public void readJTableForDesc(String desc) {
    DefaultTableModel modelo = (DefaultTableModel) jtbContas.getModel();
    modelo.setNumRows(0);
    ContasDAO pdao = new ContasDAO();
    for (Contas c : pdao.readForDesc(desc)) {
        modelo.addRow(new Object[]{c.getDescricao(), c.getTipoconta(), c.getValor()});
    }
}

AQUI ESTA O CODIGO QUE COLOQUEI NO JINTERNALFRAME PARA ATUALIZAR A TABELA EM TEMPO REAL:

public class CadastrarContas extends javax.swing.JInternalFrame {

TelaCFPbeta getdados;
private static CadastrarContas telaCadastro;

/*public static CadastrarContas getInstancia() {
    if (telaCadastro == null) {
        telaCadastro = new CadastrarContas();

    }
    return telaCadastro;

}*/


/**
 * Creates new form CadastrarContas
 * @param dados
 */
public CadastrarContas(TelaCFPbeta dados) {
    initComponents();
    getdados = dados;
    
}


/**
 * This method is called from within the constructor to initialize the form.
 * WARNING: Do NOT modify this code. The content of this method is always
 * regenerated by the Form Editor.
 */
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">                          
private void initComponents() {

    jPanel1 = new javax.swing.JPanel();
    jLabel2 = new javax.swing.JLabel();
    jLabel3 = new javax.swing.JLabel();
    jcbTipoConta = new javax.swing.JComboBox<>();
    jLabel1 = new javax.swing.JLabel();
    txtDescricao = new javax.swing.JTextField();
    txtValor = new javax.swing.JTextField();
    btnCadastrar = new javax.swing.JButton();

    setClosable(true);
    setTitle("Cadastrar Contas");

    jLabel2.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
    jLabel2.setText("VALOR");

    jLabel3.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
    jLabel3.setText("R$:");

    jcbTipoConta.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
    jcbTipoConta.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "Selecione o Tipo de Conta A cadastrar", "Contas A pagar", "Contas A receber" }));

    jLabel1.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
    jLabel1.setText("DESCRIÇÃO");

    txtDescricao.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N

    txtValor.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N

    btnCadastrar.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
    btnCadastrar.setText("Cadastrar");
    btnCadastrar.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            btnCadastrarActionPerformed(evt);
        }
    });

    javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
    jPanel1.setLayout(jPanel1Layout);
    jPanel1Layout.setHorizontalGroup(
        jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGroup(jPanel1Layout.createSequentialGroup()
            .addContainerGap()
            .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                .addGroup(jPanel1Layout.createSequentialGroup()
                    .addComponent(jLabel2)
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                    .addComponent(jLabel3))
                .addComponent(jLabel1))
            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
            .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(jPanel1Layout.createSequentialGroup()
                    .addComponent(txtValor, javax.swing.GroupLayout.PREFERRED_SIZE, 157, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 296, Short.MAX_VALUE)
                    .addComponent(btnCadastrar, javax.swing.GroupLayout.PREFERRED_SIZE, 153, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGroup(jPanel1Layout.createSequentialGroup()
                    .addComponent(txtDescricao)
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                    .addComponent(jcbTipoConta, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
            .addGap(36, 36, 36))
    );
    jPanel1Layout.setVerticalGroup(
        jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGroup(jPanel1Layout.createSequentialGroup()
            .addGap(38, 38, 38)
            .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                .addComponent(jLabel1)
                .addComponent(jcbTipoConta, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addComponent(txtDescricao, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
            .addGap(18, 18, 18)
            .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                .addComponent(jLabel2)
                .addComponent(jLabel3)
                .addComponent(txtValor, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addComponent(btnCadastrar))
            .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
    );

    javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
    getContentPane().setLayout(layout);
    layout.setHorizontalGroup(
        layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
    );
    layout.setVerticalGroup(
        layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
    );

    pack();
}// </editor-fold>                        

private void btnCadastrarActionPerformed(java.awt.event.ActionEvent evt) {                                             
    
    
    Contas c = new Contas();
    ContasDAO dao = new ContasDAO();
    c.setTipoconta(jcbTipoConta.getSelectedItem().toString());
    c.setDescricao(txtDescricao.getText());
    c.setValor(Double.parseDouble(txtValor.getText()));
    

    dao.create(c);
    txtDescricao.setText("");
    txtValor.setText("");
    
   
   
    getdados.readJTable();
    this.dispose();

//c.readJTable();
}

// Variables declaration - do not modify                     
private javax.swing.JButton btnCadastrar;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JPanel jPanel1;
private javax.swing.JComboBox<String> jcbTipoConta;
private javax.swing.JTextField txtDescricao;
private javax.swing.JTextField txtValor;
// End of variables declaration                   

}