Como atualizar um Jtable de um JPanel a partir de outro JPanel

0 respostas
java
E

Boa noite pessoal,

Seguinte, estou tentando fazer um sistema de cadastro de responsaveis que possui uma view para editar um aluno, este aluno por sua vez contem uma lista de responsaveis, a qual quero exibir num jtable. Porem, junto desta Jtable eu possuo tambem um botao de adicionar que abre um JFrame para adicionar um responsavel, quando o responsavel e adicionado, eu quero que ele atualize a jTable do panel anterior. Procurei varias formas de fazer isso mas nao entendi muito bem outros topicos, precisava de uma forma mais simples de entender.

public class PanelAlterarAluno extends javax.swing.JPanel {

    private List <Responsavel> responsaveis;
    private Aluno a;
    
    public PanelAlterarAluno(Aluno a) {
        
        this.a = a;
        
        ResponsavelController rc = new ResponsavelController();
        initComponents();
        
        tfDataNascimento.setText(this.a.getDataNascimento());
        tfNome.setText(this.a.getNome());
        tfProntuario.setText(this.a.getProntuario());
        tfTelefone.setText(this.a.getTelefone());
               
        this.preencherTabela(this.a.getResponsaveis());
                
    }

    PanelAlterarAluno() {
        initComponents();
    
      
    }                                 

    private void btAdicionarActionPerformed(java.awt.event.ActionEvent evt) {                                            
        PanelAlterarAluno pa = new PanelAlterarAluno();
        JFrame frame = new FrameCadastrarResponsavel(a, pa);
        frame.setVisible(true);

    }                                                                           

    public void preencherTabela(List responsaveis) {
     
            //Instancia o modelo
        ResponsaveisTabelaModelo modeloTabela = new ResponsaveisTabelaModelo(responsaveis);
        //altera o modelo da tabela
        tbResponsaveis.setModel(modeloTabela);
    }

Esse panel PanelAlterarAluno, ao clicar em Adicionar chama o JFrame, eu quero que ao inserir este responsavel (isso ja esta funcionando perfeitamente, por isso abstrai essa parte do codigo) o Panel anterior atualize e mostre o responsavel adicionado na tabela.

private void btInserirActionPerformed(java.awt.event.ActionEvent evt) {                                          
    Responsavel r = new Responsavel();
          
    r.setDataNascimento(tfDataNascimento.getText());
    r.setNome(tfNome.getText());
    r.setTelefone(tfTelefone.getText());        
    
    responsaveis.add(r);
    
    a.setResponsaveis(responsaveis);
    
    JOptionPane.showMessageDialog(null,"Responsavel adicionado com sucesso!");
    this.dispose();
    
    PanelAlterarAluno pa = new PanelAlterarAluno(a);
    
    
    panel.preencherTabela(responsaveis);
    
            
}
Criado 12 de dezembro de 2018
Respostas 0
Participantes 1